منظور از پرونده های غیر مجاز چیه ؟
وردپرس به صورت پیشفرض از یک سری فرمت های متداول پشتیبانی میکنه و اگر شما بخواید فایلی رو آپلود کنید که در لیست پسوندهای مجاز نباشه بهتون پیامی با این مضمون میده :
با عرض پوزش، این نوع پرونده به دلایل امنیتی مجاز نیست.
البته اینکه وردپرس نمیزاره پسوند های دیگه رو آپلود کنید صرفاً دلیل بر خطرناکیشون نیست. برای آپلود فایل های این شکلی شما دو راه پیش رو دارید . یا اینکه فرمت فایل رو عوض کنید یا اینکه پسوندهای دیگه ای رو هم به لیست پرونده های مجاز وردپرس اضافه کنید. در ادامه هر دو روش رو بهتون یاد میدیم .
رفع مشکل آپلود فایل با تغییر فرمت فایل
اولین روش پیشنهادی ما اینه که سعی کنیم تا حد ممکن طبق فرمت های پیشفرض وردپرس جلو برید و فایلی با پسوند غیر مجاز اپلود نکنید . چرا این فایل ها خطرات امنیتی بیشتری به دنبال دارن و ممکنه خدایی نکرده باعث هک شدن سایت شما بشن .
تبدیل فرمت راحت ترین کاریه که میشه کرد . یه روش تبدیل فرمت اینه که پسوند فایل رو عوض کنید . یعنی با استفاده از نرم افزارهای کانورتر سعی کنید فایل قبلی رو به فرمت جدید تبدیل کنید .
مثلا اگر میخواید تصاویر با فرمت webp آپلود کنید یا ویدئویی با فرمت flv دارید خیلی راحت میشه اونها رو به فرمت jpeg و mp4 تبدیل کرد .
برای این منظور نرم افزار رایگان File Converter رو بهتون پیشنهاد می کنیم . این نرم افزار بسیار سریع و قدرتمنده و اکثر فایل های صوتی و تصویری رو میتونه به فرمت های مختلف تبدیل کنه .
البته تغییر فرمت فقط اینطوری نیست . اگر قصدتون دانلود فایل توسط کاربران هست و قرار نیست مثل فایل های مولتی مدیا ، فایل رو نمایش بدید میتونید از فشرده سازها استفاده کنید . کافیه فایل های مد نظرتون رو با استفاده از نرم افزارهای فشرده سازی مثل WinRAR فشرده و بعد از اون اقدام به آپلود فایل کنید .
البته بعضی از سایت ها نمیخوان اینطوری پیش برن . مثلا سایت هایی که اپلیکیشن اندروید ارائه میکنن ترجیح میدن فایل هاشون رو به صورت مستقیم با فرمت APK قرار بدن تا کاربر بتونه بعد از دانلود سریعاً نصب کنه . ضمن اینکه خارج کردن فایل ها از حالت فشرده ممکنه برای کاربران آماتور سخت باشه .
اینطور مواقع که نمیشه با وردپرس کنار اومد ! باید هرچی تو چنته داریم رو کنیم و مچش رو بخوابونیم .
مجاز کردن اپلود فایل با پسوند های مختلف
دو مسیر پیش رو داریم . یکی استفاده از افزونه ها و یکی هم درج کدها در فایل فانکشن . همونطور که در مقاله ” ۷۸ افزونه ای که سرعت سایت شما رو کاهش میدن ! ” گفتیم استفاده از افزونه های زیاد دردسرهایی به همراه داره و بهتره تا حد امکان از نصب افزونه های مختلف پرهیز کنیم.
بنابراین پیشنهاد میکنیم از روش کد گذاری در فایل فانکشن استفاده کنید. برای این کار کافیه کدهای زیر رو در فایل فانکشن قالب اضافه کنید :
function novinadmin_mime_types( $mimes ) {
// فرمت های جدید رو به این شکل اضافه کنید.
$mimes['WebP'] = 'image/webp';
$mimes['apk'] = 'application/vnd.android.package-archive';
return $mimes;
}
add_filter( 'upload_mimes', 'novinadmin_mime_types' );
همونطور که در کدها مشخص کردیم باید فرمتهای جدید رو به این شکل به وردپرس اضافه کنید . ما دو فرمت WebP و APK رو مجاز کردیم . برای این کار شما نیاز دارید فرمت و Mime Type فایل رو بدونید .
فرمت فایل رو که موقع آپلود متوجه میشید . همونجایی که بهتون پیغام خطا رو نشون میده ، نام و فرمت فایل رو هم اعلام میکنه . اما برای Mime Type کافیه در اینترنت جستجو کنید . مثلا برای WebP باید جستجو کنید :” webp mime type ” خیلی راحت مایم تایپ فرمت های مختلف رو میتونید پیدا کنید .
روش هایی که پیشنهاد نمی شوند !!
در کنار روش هایی که گفتیم روش های دیگه ای هم وجود داره که بهتون پیشنهاد نمی کنیم . روش اول مجاز کردن همه پسوندهاست . با قرار دادن کد زیر در فایل wp-config.php (این فایل در روت سایت قرار داره) از وردپرس بخواید همه پسوندها رو قبول کنه .
define( 'ALLOW_UNFILTERED_UPLOADS', true );
روش دیگه هم استفاده از افزونه هاست . شما میتونید از افزونه WP Extra File Types استفاده کنید . این افزونه یک سری فرمت پیش فرض داره که میتونید اونها رو انتخاب کنید . اگر هم فرمت مورد نظر شما داخلش نبود به همون روش که ابتدا گفتیم باید فرمت و mime type رو مشخص و در افزونه وارد کنید تا به لیست پسوند های مجاز اضافه بشه .
2 پاسخ
سلام من در قسمت کتابخانه مشکل آپلود پی دی اف ندارم و براحتی آپلود میشه اما وقتی در قسمت پست یا همون نوشته میخواهم در قسمت چندرسانه ای هرفایلی رو آپلود کنم در پنجره ای که برام باز میشه فقط مجازم جی پی جی آپلودکنم و وقتی که دراون پنجره گزینه رو روی all filesمیذارم و پی,دی افم رو انتخاب میکنم ارور میده و مینویسه: باعرض پوزش ،این نوع فایل در اینجا پشتیبانی نمیشود. حتی وقتی درکتابخانه آپلودمیکنم فایلم رو توی قسمت پست ک میخوام آپلودش کنم فایل پی,دی اف رو نشون نمیده فقط عکسهارو نشون میده.من راه حل دومتون رو انجام دادم جواب نداد.خواهش میکنم کمکم کنین یکبار بخاطر این موضوع وردپرس روپاک کردم و دوباره نصب کردم بازدرست نشد.پوسته رو هم عوض کردم بازدرست نشد.کمکم کنین ممنونم
درود بر شما :
بصورت پیش فرض نباید همچین مشکلی داشته باشید. چون وردپرس اجازه آپلود pdf رو میده. احتمالا یکی از افزونه های شما داره مشکل ایجاد میکنه. سعی کنید فولدرهای plugin و theme رو تغییر نام بدید . بعد تست کنید ببینید باز مشکل دارید یا نه . اگر مشکل برطرف شد اشکال از قالب و افزونه هاست. اگر همچنان مشکل داشتید احتمالا کدی هایی در wp-config یا htaccess هست که مانع میشه. اگر با نسخه تازه وردپرس و با فایل های پیش فرض همچنان مشکل دارید احتمالا هاستتون دسترسی هایی رو محدود کرده باشه .