مرکز آموزش

اجبار کاربر به دانلود فایل در مرورگر

  • .htaccess, دانلود اجباری فایل در سایت, Forcing a file to download in a browser, بارگیری اجباری فایل, دانلود فایل با پسوند خاص در وبسایت
  • 5

اجبار کاربر به دانلود فایل در مرورگر

گاهاً پس از راه‌‌‌‌اندازی وبسایت، قصد ارائه فایلی به بازدیدکنندگان وبسایت دارید. این فایل می‌تواند یک فایل متنی، صوتی و یا ویدئویی باشد. شما می‌توانید تعیین کنید که واکنش مرورگر کاربر به هنگام مواجهه با این فایل چگونه باشد. اینکه این فایل را در مرورگر باز کند، مثلا فایل ویدئویی را اجرا کند و یا اقدام به دانلود فایل کند. چیزی که قرار است در این مقاله توضیح دهیم، همان مورد دوم است؛ یعنی اینکه قصد داریم کاربر فایل را دانلود کرده و یک نسخه از آن را در سیستمش ذخیره نماید. برای انجام این کار نیازمند افزودن چند خط کد به فایل .htaccess هستیم. در ادامه به شرح انجام این کار می‌پردازیم.

دانلود اجباری فایل از طریق .htaccess

با انجام موارد زیر، از طریق فایل .htaccess می‌توان مرورگر را اجبار به دانلود فایل با پسوند خاص کرد:

1- فایل .htaccess را یافته و جهت ویرایش باز کنید.

در صورت عدم اطلاع از مسیر قرارگیری فایل .htaccess و استفاده از پنل مدیریتی cPanel، این راهنما را مطالعه کنید.

2- کد زیر را در فایل .htaaccess قرار دهید. این کد موجب می‌شود تا بازدیدکننده آن نوع فایل را دانلود کند. برای دانلود هر نوع  فایل با پسوند خاص لازم است یک خط کد در فایل .htaccess قرار دهید. در این مقاله ما بازدیدکننده را ملزم به دانلود فایل‌های ویدئویی با پسوند .mov و فایل‌های متنی و سندی با پسوند .pdf و .doc می‌کنیم:

AddType application/octet-stream .mov
AddType application/octet-stream .pdf
AddType application/octet-stream .doc

 

اجبار به دانلود فایل‌ مورد نظر از طریق کدهای PHP

مورد فوق تنها موجب می‌شد تا گروهی از فایل‌ها با پسوند‌های خاص دانلود شوند. از طریق کدهای PHP می‌توانید (ضمن تغییر HTTP Headers) موجب دانلود فایل مورد نظر از طریق مرورگر کاربر شوید. پس به این وسیله Browser کاربر را ملزم به دانلود فایل به جای لود یا نمایش آن می‌کنید. این روش برای فایل‌های نظیر PDF، فایل‌های Document، تصاویر و فایل‌های ویدئویی که تمایل دارید کاربر به جای مشاهده‌ی آن‌ها دریافتشان کند، بسیار مناسب است. با استفاده از PHP می‌توانید از مزیت این تابع بهره ببرید:

$file_url = 'http://www.example.com/file.pdf';
header('Content-Type: application/octet-stream');
header("Content-Transfer-Encoding: Binary");
header("Content-disposition: attachment; filename=\"" . basename($file_url) . "\"");
readfile($file_url)
exit();

در خط دوم با تعریف Content-Type، مرورگر مجبور به دانلود فایل می‌شود. در خط چهارم با استفاده از Content-disposition، اسم فایل جهت ذخیره ارسال می‌گردد. در نهایت در خط پنجم خروجی نهایی جهت شروع دانلود ایجاد می‌شود.

تمامی حقوق مادی و معنوی این مطلب متعلق به HiSupport است.
کپی برداری از مطالب تنها با ذکر منبع و لینک به وبسایت HiSupport بلامانع است.


آیا این آموزش به شما کمک کرد؟