اجبار به دانلود یک فایل یا تصویر با کلیک روی لینک
حتماً با حالتی روبرو شدید که وقتی روی یک لینک یا پیوند از صفحات مختلف کلیک میکنید، به جای اینکه آن سند روی مرورگر شما دریافت (دانلود) شود، محتوای آن سند درون همان سربرگ یا یک سربرگ تازه نمایش داده میشود. البته این در حالتی است که مرورگر از پسوند آن سند برای باز شدن پشتیبانی کند. مثلا اسناد pdf و mp3 و txt ممکن است درون خودِ مرورگر باز شوند.
اما به عنوان مدیر سایت ممکن است نخواسته باشید که این اتفاق بیافتد. یعنی شما میخواهید یک لینک را در جایی از صفحهٔ سایت خود قرار دهید که زمانی که کاربر روی آن کلیک کرد، در هر صورت آن سند روی رایانهٔ بازدید کننده دریافت (دانلود) شود. راهکار انجام این کار در این مقاله به شما دوستان آموزش داده شده است.
اجبار به دانلود سند توسط .htaccess
کاری که باید انجام شود، استفاده از یک تکه کد تقریباً ساده در سند .htaccess است. این سند دستوراتی را به وب سرور ارسال میکند که وب سرور هم کارهایی که ما میخواهیم را برای ما انجام میدهد. دستوری که در زیر میبینید را هم شما میتوانید درون این سند که در ریشهٔ هاست شما واقع شده است قرار دهید و نتیجه را بررسی کنید.
<FilesMatch "\.(pdf|jpg)$"> Header set Content-Disposition attachment </FilesMatch>
در خط اول کد بالا، مشخص شده که چه نوع اسنادی مجبور به دانلود شوند. اسناد pdf و jpg به جای نمایش روی مرورگر، زمانی که روی یک پیوند کلیک میشود، دانلود خواهند شد. شما میتوانید این مقادیر را طبق میل خود تصحیح کنید. دقت کنید که هر پسوند فایل باید با نویسهٔ | از همدیگر جدا شوند.
به جهت اینکه این کد کار کند، حتماً باید افزونهٔ mod_headers روی وب سرور شما نصب شده باشد که به احتمال زیاد خارج از کنترل شماست. چون تنها مدیر سرور که دسترسی root به سرور را دارد میتواند این کار را انجام دهد. روی بیشتر هاستها این افزونه نصب است.
راجع به سند .htaccess به شما هشدار دهم که این سند خیلی حساس است. بهتر است قبل از اعمال تغییرات یک نسخهٔ رونوشت شده از آن در جایی ذخیره داشته باشید که به محض بروز خطا، با جایگزین کردن آن خطا رفع گردد.
سلام من این کار رو انجام دادم ولی روی گوشی میزنم باز هم اجرا میکنه به جای دانلود
توی یک مرورگر دیگه روی لپ تاپ یا رایانه رومیزی تست کنید. اگر اونجا این مشکل نبود، به احتمال زیاد توی مرورگر این تنظیم انجام شده که به جای دانلود، سند باز بشه.
سلام و درود.
برای هاست دانلود به چه شیوه ای می توان عمل کرد که فایل ها دانلود نشوند. آیا راهکاری هست؟
با سلام. از همین روش باید استفاده کنید. یعنی کد رو توی سند htaccess قرار بدید که به وب سرور هاست دانلودتون بفهمونه که به مرورگر بفهمونه که نباید اون رو دانلود کنه و باید توی مرورگر نمایشش بده.
Header set Content-Disposition inline
سلام کاربرای سایتمونو نجات دادین دمتون گرم ❤️
سلام. موفق باشید.