
آیا تا به حال خواسته اید فایل هایی با فرمت های خاص (مانند SVG، PSD، AI یا حتی فایل های صوتی و تصویری کمتر رایج) را مستقیماً در وردپرس آپلود کنید، اما با پیغام “خطای امنیتی” مواجه شده اید؟
وردپرس به دلایل امنیتی، تنها به شما اجازه آپلود فرمت های فایل محدودی را می دهد. اما نگران نباشید! این محدودیت به معنای پایان کار نیست.
در این مقاله، قدم به قدم به شما آموزش می دهیم که چگونه با افزودن MIME Types در وردپرس 3.0.3، این دیوار را بشکنید و کنترل کاملی بر انواع فایل هایی که می توانید در سایت خود به اشتراک بگذارید، به دست آورید. با ما همراه باشید تا وب سایت خود را به یک مرکز محتوای چند رسانه ای واقعی تبدیل کنید!
بررسی انواع MIME Types در وردپرس و نقش افزونه ها
MIME مخفف عبارت Multipurpose Mail Extensions است. MIME type ها توسط مرورگرها و سایر دستگاه های اینترنتی و برای تعیین نوع محتوای مرتبط با یک صفحه، استفاده می شود.
به عنوان مثال، اگر یک فایل png. و یک فایل jpeg. در صفحه دارید، مرورگر به وسیله MIME type تشخیص می دهد که هر دو فایل را به عنوان تصویر در نظر بگیرد نه ویدیو و فایل های دیگر.
وردپرس به طور پیش فرض لیستی از فایل های قابل قبول دارد. توسعه دهندگان می توانند این لیست را در فایل wp-includes/functions.php و با استفاده از کد زیر مشاهده کنند:
wp_get_allowed_mime_types()
با این حال، همه این فایل ها مجاز به آپلود نیستند. برای دیدن فرمت هایی که وردپرس اجازه آپلودشان را می دهد، باید از فیلتر upload_mimes استفاده کنید.
اگر بخواهید فایلی را آپلود کنید که فرمت آن توسط وردپرس پشتیبانی نمی شود، با پیام “Sorry, this file type is not permitted for security reasons” مواجه خواهید شد.
فهرست MIME Types مجاز برای آپلود در وردپرس
اینکه وردپرس یک نوع فایل (MIME type) را می شناسد، به این معنی نیست که می توانید آن را در بخش مدیریت آپلود کنید.
وردپرس برای آپلود فایل ها محدودیت هایی دارد. در ادامه، لیستی از فرمت های فایل و MIME type های مربوطه شان را خواهید دید که می توانید بدون مشکل در بخش مدیریت وردپرس (wp-admin) آپلود کنید.
فرمت فایل | نوع MIME |
.jpg | image/jpeg, image/pjpeg |
.jpeg | image/jpeg, image/pjpeg |
.png | image/png |
.gif | image/gif |
.ico | image/x-icon |
application/pdf | |
.doc | application/msword |
.docx | application/vnd.openxmlformats-officedocument.wordprocessingml.document |
.ppt | application/mspowerpoint, application/powerpoint, application/vnd.ms- powerpoint, application/x-mspowerpoint |
.pptx | application/vnd.openxmlformats-officedocument.presentationml.presentation |
.pps | application/mspowerpoint, application/vnd.ms-powerpoint |
.ppsx | application/vnd.openxmlformats-officedocument.presentationml.slideshow |
.odt | application/vnd.oasis.opendocument.text |
.xls | application/excel, application/vnd.ms-excel, application/x-excel, application/x-msexcel |
.xlsx | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
.psd | application/octet-stream |
.mp3 | audio/mpeg3, audio/x-mpeg-3, video/mpeg, video/x-mpeg |
.m4a | audio/m4a |
.ogg | audio/ogg |
.wav | audio/wav, audio/x-wav |
.mp4 | video/mp4 |
.m4v | video/x-m4v |
.mov | video/quicktime |
.wmv | video/x-ms-asf, video/x-ms-wmv |
.avi | application/x-troff-msvideo, video/avi, video/msvideo, video/x-msvideo |
.mpg | audio/mpeg, video/mpeg |
.ogv | video/ogg |
.3gp | video/3gpp, audio/3gpp |
.3g2 | video/3gpp2, audio/3gpp2 |
MIME Types غیرمجاز در وردپرس و نحوه مدیریت آنها
با استفاده از کد `wp_get_allowed_mime_types()`، لیستی از انواع فایل هایی (MIME types) را می بینید که وردپرس آنها را می شناسد اما اجازه آپلودشان را نمی دهد.
در ادامه، به بررسی این MIME typeهای غیرمجاز می پردازیم. اگر سعی کنید فایلی با این پسوند ها آپلود کنید، با خطای امنیتی “Sorry, this file type is not allowed for security reasons” روبرو خواهید شد. برای یادگیری نحوه رفع این خطا، به بخش مربوطه مراجعه کنید.
فرمت فایل | نوع MIME |
.bmp | image/bmp |
.tif | image/tiff |
.tiff | image/tiff |
.asf | video/x-ms-asf |
.asx | video/x-ms-asf |
.wm | video/x-ms-wm |
.wmx | video/x-ms-wmx |
.divx | video/divx |
.flv | video/x-flv |
.qt | video/quicktime |
.mpe | video/mpeg |
.webm | video/webm |
.mkv | video/x-matroska |
.txt | text/plain |
.asc | text/plain |
.c | text/plain |
.cc | text/plain |
.h | text/plain |
.csv | text/csv |
.tsv | text/tab-separated-values |
.ics | text/calendar |
.rtx | text/richtext |
.css | text/css |
.htm | text/html |
.html | text/html |
.m4b | audio/mpeg |
.ra | audio/x-realaudio |
.ram | audio/x-realaudio |
.mid | audio/midi |
.midi | audio/midi |
.wax | audio/x-ms-wax |
.mka | audio/x-matroska |
.rtf | application/rtf |
.js | application/javascript |
.swf | application/x-shockwave-flash |
.class | application/java |
.tar | application/x-tar |
.zip | application/zip |
.gz | application/x-zip |
.gzip | application/x-zip |
.rar | application/rar |
.7z | application/x-7z-compressed |
.exe | application/x-msdownload |
.pot | application/vnd.ms-powerpoint |
.wri | application/vnd.ms-write |
.xla | application/vnd.ms-excel |
.xlt | application/vnd.ms-excel |
.xlw | application/vnd.ms-excel |
.mdb | application/vnd.ms-access |
.mpp | application/vnd.ms-project |
.docm | application/vnd.ms-word.document.macroEnabled.12 |
.dotx | application/vnd.openxmlformats-officedocument.wordprocessingml.template |
.dotm | application/vnd.ms-word.template.macroEnabled.12 |
.xlsm | application/vnd.ms-excel.sheet.macroEnabled.12 |
.xlsb | application/vnd.ms-excel.sheet.binary.macroEnabled.12 |
.xltx | application/vnd.openxmlformats-officedocument.spreadsheetml.template |
.xltm | application/vnd.ms-excel.template.macroEnabled.12 |
.xlam | application/vnd.ms-excel.addin.macroEnabled.12 |
.pptm | application/vnd.ms-powerpoint.presentation.macroEnabled.12 |
.ppsm | application/vnd.ms-powerpoint.slideshow.macroEnabled.12 |
.potx | application/vnd.openxmlformats-officedocument.presentationml.template |
.potm | application/vnd.ms-powerpoint.template.macroEnabled.12 |
.ppam | application/vnd.ms-powerpoint.addin.macroEnabled.12 |
.sldx | application/vnd.openxmlformats-officedocument.presentationml.slide |
.sldm | application/vnd.ms-powerpoint.slide.macroEnabled.12 |
.onetoc | application/onenote |
.onetoc2 | application/onenote |
.onetmp | application/onenote |
.onepkg | application/onenote |
.odp | application/vnd.oasis.opendocument.presentation |
.ods | application/vnd.oasis.opendocument.spreadsheet |
.odg | application/vnd.oasis.opendocument.graphics |
.odc | application/vnd.oasis.opendocument.chart |
.odb | application/vnd.oasis.opendocument.database |
.odf | application/vnd.oasis.opendocument.formula |
.wp | application/wordperfect |
.wpd | application/wordperfect |
.key | application/vnd.apple.keynote |
.numbers | application/vnd.apple.numbers |
.pages | application/vnd.apple.pages |
انواع فایل های دیگر که می توان در وردپرس اضافه کرد
برای استفاده از فایل های غیرتصویری (مثل کتاب های الکترونیکی .epub یا .mobi)، ساده ترین راه نصب یک افزونه است.
اگر همچنان مشکل دارید، می توانید با اضافه کردن کدی به فایل wp-config.php**، امکان آپلود این نوع فایل ها را فقط برای مدیران (ادمین ها) فعال کنید.
define( 'ALLOW_UNFILTERED_UPLOADS', true );
رفع خطای MIME Type در وردپرس هنگام آپلود فایل غیرمجاز
در آپدیت امنیتی وردپرس 4.7.1 (ژانویه 2017)، تغییری در نحوه بررسی نوع فایل ها (MIME type) هنگام آپلود ایجاد شد. این تغییر باعث شده که برخی از فایل ها، به خصوص فایل های غیرتصویری، با خطای امنیتی در آپلود مواجه شوند.
کاربرانی که از افزونه های خاص برای آپلود انواع فایل های بیشتر استفاده می کنند، ممکن است هنگام آپلود در بخش مدیریت وردپرس (wp-admin) با یک پیام خطا روبرو شوند.
این مشکل معمولاً برای فایل هایی با پسوند های رایج مثل .docx، .ppt، .svg، .xlsm و .ai** پیش می آید، اما ممکن است برای فایل های دیگر نیز رخ دهد.
اگر به تازگی این هشدار را می بینید، چند راه مختلف برای حل این مشکل وجود دارد:
1. خط زیر را به فایل wp-config.php اضافه کنید. این امکان آپلود فایل غیر تصویری را فقط برای ادمین ها فراهم می کند:
define( 'ALLOW_UNFILTERED_UPLOADS', true );
برای تغییر فایل wp-config با SFTP یا SSH Gateway متصل شوید.
2. از افزونه ای استفاده کنید که این توانایی را بازیابی می کند.
3. در عوض، فایلی را که خطا را برمی گرداند، با استفاده از SFTP آپلود کنید.
جمع بندی آموزش افزودن MIME Types در وردپرس
در این مقاله یاد گرفتیم که چرا وردپرس اجازه آپلود همه نوع فایل رو نمیده و چطور میتونیم این محدودیت رو با استفاده از MIME Types دور بزنیم. چه با استفاده از افزونه ها و چه با اضافه کردن چند خط کد، حالا دیگه می دونید چطور فرمتهای دلخواه تون مثل .svg, .psd, .mobi یا حتی .zip رو به وردپرس اضافه کنید. اگر سؤال یا تجربه ای در این زمینه دارید، خوشحال می شیم در بخش نظرات بخونیم.
وردپرس به دلایل امنیتی فقط اجازه آپلود برخی فرمت های خاص را می دهد. اگر فایل شما MIME Type مجاز نداشته باشد، این خطا نمایش داده می شود.
بله، افزودن فرمت های ناشناخته یا غیرمجاز می تواند ریسک امنیتی ایجاد کند. فقط فرمت هایی را اضافه کنید که مطمئن هستید بیخطر هستند و به آنها نیاز دارید.