خطای آپلود تصویر ممکن است به دلایل بسیاری در وردپرس ظاهر شود. در اینجا تمامی راههای حل خطای آپلود تصویر وردپرس را بررسی میکنیم.
آیا تابهحال با خطای آپلود تصویر وردپرس روبرو شدهاید؟ همانطور که واضح است این ارور در هنگام آپلود تصاویر در وردپرس اتفاق میافتد. اما دلیل آن چیست؟ خطای آپلود تصویر وردپرس یکی از خطاهای نسبتاً ساده در این پلتفرم است.
خوشبختانه راههای بسیاری برای رفع این خطا وجود دارد که خودتان میتوانید آنها را انجام دهید. در ادامه به آموزش حل خطای آپلود تصویر وردپرس میپردازیم. همراه ما باشید.
همانطور که بارها در تمامی مقالات استودیو بهتر به آن اشاره کردیم، وردپرس یکی از محبوبترین و پراستفادهترین CMSهای موجود است. اما این محبوبیت به معنی این نیست که این پلتفرم عاری از مشکلات و خطا باشد. مانند هر پلتفرم دیگری در این CMS هم خطاهای متعددی را مشاهده میکنیم.
البته ازآنجاییکه این CMS هم برای کاربران آماتور و هم حرفهای توسعه داده شده است پس رفع خطاها کار سختی نیست. یکی از این خطاهای رایج خطای آپلود تصاویر وردپرس است.
قبل از اینکه به سراغ راهحلهای خطای آپلود تصویر وردپرس برویم اجازه دهید به موضوع دیگری بپردازیم. آیا تابهحال به این فکر کردهاید که چرا خطای آپلود تصویر رخ میدهد؟
همانطور که میدانید فایلهای وبسایت شما در سرور هاستتان ذخیره میشوند. برای اینکه این فایلها خوانده شوند به دسترسیها یا همان Permission درست نیاز دارند. اگر اختلالی در این دسترسیها ایجاد شود شما با خطای آپلود تصویر وردپرس روبرو میشوید.
مشکل موجود در این دسترسیها باعث میشود وردپرس نتواند فایلها را بخواند یا حتی آپلود کند. زمانی که این خطا در وردپرس رخ میدهد پیغام زیر به کاربر نشان داده میشود:
‘Unable to create directory wp-content/uploads/2019/04. Is its parent directory writable by the server?’
نشانه دیگری که بروز این خطا را گزارش میدهد ناپدید شدن تصاویر از گالری وردپرس است.
اما این دسترسیها چطور تغییر میکنند؟ بدون اینکه خودتان کاری کرده باشید. دلایل بسیاری پشت این اتفاق قرار گرفته است. برای مثال یکی از دلایل تغییر دسترسیها، میتواند آپگرید ناگهانی سرویس هاست شما باشد. در این صورت این دسترسیها بدون اطلاع شما تغییر میکنند که در نهایت منجر به بروز خطای آپلود تصویر وردپرس میشوند.
آموزش حل خطاهای آپلود تصویر در وردپرس
بدون اتلاف زمان، حال وقت آن است به سراغ حل خطاهای آپلود تصویر در وردپرس برویم.
1. حل خطای Create Directory Error در وردپرس
در این روش از حل خطای آپلود تصویر وردپرس باید از طریق حساب FTP به وبسایت خود متصل شوید. پس اولین چیزی که به آن نیاز دارید یک حساب و نرمافزار FTP است. نرمافزارهای FTP بسیاری در اینترنت وجود دارند که یکی از معروفترین آنها FileZilla است.
بعد از اتصال به وبسایت از طریق FTP به سراغ پوشه /wp-content بروید. در این پوشه شما پوشه دیگری به اسم Uploads مشاهده میکنید. این پوشه جایی است که تمامی محتوای بارگذاری شده در وبسایتتان در آن قرار میگیرد. بر روی پوشه Uploads کلیک راست کنید و از منوی باز شده، روی File Permission کلیک کنید. به تصویر دقت کنید:
با این کار پنجره جدید برای شما باز میشود که در آن تنظیمات مربوط به Permission پوشه مربوطه را مشاهده میکنید.
اولین کاری که باید در اینجا انجام دهید، این است که دسترسی پوشه Uploads و تمامی پوشههای زیرین – subdirectories آن را بر روی 744 قرار دهید. برای این کار کافی است تا در کادر numeric value مقدار 744 را وارد کنید. همچنین فراموش نکنید که تیک گزینه Recurse into subdirectories و Apply to directories only را فعال کنید. در آخر برای اعمال این تغییرات بر روی گزینه Ok کلیک کنید. (اگر با تنظیم دسترسی بر روی مقدار 744 مشکل حل نشد دسترسی 755 را امتحان کنید)
قدم بعدی که باید انجام دهید این است که دسترسی تمامی فایلهای موجود در پوشه Uploads را تغییر دهید. برای این کار باز بر روی پوشه Uploads کلیک راست کنید و File Permission را انتخاب کنید. حال در کادر تعبیه شده به نام Numeric Value مقدار 644 را تایپ کنید. در آخر هم گزینه Recurse into subdirectories و Apply to files only را فعال کنید. فراموش نکنید که برای ذخیره تغییرات Ok را بزنید.
در وارد کردن مقادیر و فعال کردن گزینههای مربوطه در هر مرحله دقت کنید.
2. حل خطای HTTP در زمان آپلود تصویر در وردپرس
یکی دیگر از خطاهایی که هنگام آپلود تصویر وردپرس با آن مواجه میشوید خطای HTTP است. خطای HTTP یکی از خطاهایی است که کاربران مواجه شدن با آن را دوست ندارند. دلیل آن چیزی نیست جز حلوفصل زمانبر آن. زیرا این خطا نام و نشانی از خود باقی نمیگذارد و باید تمامی راههای احتمالی را بروید تا شاید یکی از آنها جواب بدهد.
از طرفی خطای HTTP هیچ کد خطایی در اختیار شما قرار نمیدهد و همین موضوع کار را سختتر میکند. در ادامه به راهحلهای رفع خطای HTTP در زمان آپلود تصویر در وردپرس اشاره میکنیم و بهطور خلاصه به جزئیات آنها میپردازیم:
رفرش صفحه یا تغییر مرورگر
شاید این راهحل بیش از حد ساده و پیشپاافتاده به نظر برسد اما در بیشتر مواقع جواب میدهد. تنها کاری که لازم است بکنید این است که یکبار صفحه وردپرس را رفرش کنید. ممکن است به هر دلیلی ارتباط شما با وردپرس قطع شده باشد که این رفرش باعث میشود دوباره به آن متصل شوید.
همچنین ممکن است مدت زمان مجازی که میتوانستید در وردپرس باشید به پایان رسیده باشد که برای رفع آن مجدد باید در وردپرس لاگین کنید.
آخرین احتمالی که وجود دارد این است که مشکلی در سرویس اینترنت شما رخ داده باشد که با رفرش صفحه متوجه آن میشوید. تغییر مرورگر هم بارها خطای آپلود تصویر را رفع کرده است. ممکن است به هر دلیلی مرورگری که از آن استفاده میکنید در این پروسه منجر به بروز خطا شود.
پاک کردن کش مرورگر
پاک کردن کش مرورگر یکی دیگر از راههای رفع خطای HTTP در حین آپلود تصاویر است. کش اطلاعاتی است که در حین بازدید وبسایتها و آدرسها در مرورگر شما ذخیره میشوند.
برای پاک کردن این دیتاها فقط برای صفحهای که در آن حضور دارید کافی است از کلید میانبر ctrl+f5 در ویندوز استفاده کنید. کاربران مک و سافاری هم به ترتیب از کلیدهای زیر استفاده کنند:
مک: CMD+Shift+R
سافاری: SHIFT+Reload
اما اگر قصد دارید کش مرورگر را بهطورکلی پاک کنید باید به تنظیمات مروگر موردنظرتان بروید و از آنجا دنبال گزینه Clear browsing data بگردید. برای اینکه به مسیر دقیق پاک کردن کش در هر مرورگر دسترسی داشته باشید کافی است پاک کردن کش را برای مرورگر موردنظرتان در گوگل جستجو کنید.
همچنین برای دسترسی به اطلاعات و جزئیات بیشتر خطای HTTP کافی است به مقاله کاملی نوشتهایم نگاهی بیندازید.
تغییر نام فایل تصویر
وردپرس فایلهای تکراری را همراه با قرار دادن عدد در انتهای آنها مشخص میکند. این روند ممکن است بهطور خودکار انجام نشود و منجر به بروز خطا شود. نام فایل تصویر را تغییر دهید و حواستان باشد از نامهای عجیبوغریب استفاده نکنید. برای مثال file-name-01.png یک قالب مناسب برای انتخاب نام است.
کاهش حجم تصویر
یکی دیگر از راهحلها کاهش حجم تصویر است. ممکن است حجم تصویری که در حال بارگذاری آن بودهاید بیش از استانداردهای وردپرس بوده باشد. یکی از پلاگینهایی که برای کنترل ابعاد و حجم تصویر به کمکتان میآید افزونه Imagify است.
تغییر فرمت تصویر
فرمت تصویر موردنظرتان را تغییر دهید. اگر فرمت تصویری که بارگذاری کردید و با خطا مواجه شدید png بود فرمت JPG را امتحان کنید. یا برعکس، اگر JPG آپلود کرده بودید حال PNG را امتحان کنید. وردپرس گاهی بیش از حد به جزئیات حساس میشود.
غیرفعال کردن پلاگینها و قالبها
تمامی قالبها و افزونههای وردپرس را بهطور موقت غیرفعال کنید. برخی از پلاگینهای امنیتی منجر به بروز خطای HTTP میشوند. همچنین با غیرفعال کردن قالبها و استفاده از قالب پیشفرض وردپرس شانس خودتان در رفع ارور HTTP را دوچندان کنید.
افزایش محدودیت حافظه PHP
حافظه PHP مقدار حافظهای است که در سمت سرور وبسایتتان برای انجام عملیاتی همچون بارگذاری در نظر گرفته میشود. اگر ظرفیت این حافظه رو به اتمام باشد خطای HTTP رخ میدهد. پس با افزایش مقدار حافظه PHP میتوانید به حل خطای HTTP نزدیکتر شوید. اگر در مورد چگونگی افزایش محدودیت حافظه PHP سؤال دارید به وبسایت استودیو بهتر مراجعه کنید.
بهروزرسانی نسخه PHP وردپرس
همانطور که میدانید وردپرس بر اساس زبان PHP توسعه داده شده است. توسعهدهندگان وردپرس بر این باور هستند بهروز بودن نسخه PHP نصب شده بر روی وردپرس از بروز بسیاری از خطاها جلوگیری میکند. از طریق کنترل پنل هاستتان به وبسایت خود متصل شوید. در آن جا در بخش Software و سپس Select PHP Version میتوانید نسخه فعلی PHP را ببینید و برای بهروزرسانی آن اقدام کنید.
حذف مسیر کتابخانه رسانه
اگر اخیراً مسیر بارگذاری و ذخیرهسازی فایلها را در وبسایت خود تغییر دادهاید بروز خطای آپلود تصویر خیلی دور از انتظار نیست. تنها مسیری که بهعنوان مکان ذخیرهسازی و آپلود فایلها در وردپرس شناخته میشود پوشه wp-content/uploads است. اگر در فایل منیجر خود فایل path مشاهده کردید آن را حذف کنید تا وردپرس همان مسیر پیشفرض را بشناسد.
غیرفعال کردن mod-security
Mod-security یک فایروال متن باز است. فعال بودن این حالت، گاهی اوقات منجر به بروز خطای HTTP و آپلود تصاویر میشود. برای غیرفعال کردن آن به سراغ فایل .htaccess بروید. قطعه کد زیر را به این فایل اضافه کنید و آن را ذخیره کنید:
<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
/<IfModule>
تغییر کتابخانه وردپرس از Imagick به GD Library
Imagick و GD هر دو از کتابخانههای استفاده شده در وردپرس هستند. اما کتابخانه Imagick به دلیل محدودیت و کمبود مقدار حافظه مشکلاتی همچون خطای HTTP را برای کاربران به وجود میآورد. به همین خاطر سوییچ کردن به کتابخانه GD ممکن است راهحلی برای خطای آپلود تصاویر باشد. برای این کار قطعه کد زیر را به فایل function.php اضافه کنید:
functionwpb_image_editor_default_to_gd( $editors){
$ gd_editor= 'WP_Image_Editor_GD;'
$ editors= array_diff( $editors, array( $gd_editor) );
array_unshift( $editors, $gd_editor);
return$editors;
}
add_filter( 'wp_image_editors', 'wpb_image_editor_default_to_gd');
محدود کردن پردازشهای Imagick در htaccess
بهطور پیشفرض تعداد عملیاتی که در کتابخانه Imagick میتواند انجام شود، همزمان بر روی چندین عملیات تنظیم شده است. اما ازآنجایی که این کتابخانه مشکلات مربوط به حافظه دارد پس این امر مشکلساز میشود. برای اینکه بتوانید در هر لحظه فقط یک عملیات بارگذاری انجام دهید دستور زیر را در فایل htaccess وارد کنید:
SetEnv MAGICK_THREAD_LIMIT 1
نصب پلاگین Add from server
این پلاگین راهحلی است موقتی برای رفع خطای آپلود تصاویر در وردپرس. با استفاده از این پلاگین و پروتکل SFTP میتوانید فایلهای بسیار حجیم هم در وردپرس آپلود کنید.
از سرویسدهنده هاست خود کمک بگیرید
آخرین راهی که به کمکتان میآید تماس با سرویسدهنده هاستتان است. اگر تمامی راهحلها را امتحان کردید و جوابی نگرفتهاید حال وقت آن است که با کارشناسان پشتیبانی در تماس باشید.
3. حل خطای Missing Temporary Folder در وردپرس
خطای Missing Temporary Folder در وردپرس بارگذاری تصاویر، افزونهها، بهروزرسانی هسته وردپرس و حتی بهروزرسانی پلاگینها را غیرممکن میکند. دلیل این خطا چه چیزی میتواند باشد؟
یکی از دلایل شایع اتفاق افتادن خطای Missing Temporary Folder در وردپرس نادرست بودن تنظیمات PHP در هاست وبسایت است. برخی از تنظیمات مربوط به PHP در هاست وردپرس برای این هستند تا بهطور موقت اطلاعات در یک پوشه موقتی ذخیره شوند تا بعدها برای این دیتا مکان ذخیرهسازی مناسب یافت شود.
زمانی که شما در وردپرس تصویری آپلود میکنید، هسته اصلی را آپدیت و افزونهای نصب میکنید؛ وردپرس باید به این پوشه موقت دسترسی داشته باشد. اگر این پوشه در دسترس وردپرس نباشد شما با خطای Missing Temporary Folder مواجه میشوید. برای حل این خطا کافی است تا طبق مراحل زیر پیش بروید:
- از طریق حساب FTP یا کنترل پنل هاست – cPanel به وبسایت خود متصل شوید.
- به دنبال فایل wp-config.php بگردید.
- این فایل را باز کنید و آن را برای ادیت آماده کنید. پیشنهاد ما این است که این فایل را به صورت محلی بر روی کامپیوتر خود دانلود کنید و بعد از اعمال تغییرات مجدد آن را بر روی هاست خود آپلود کنید.
- قطعه کد زیر را قبل از جمله That’s all, stop editing! Happy blogging به فایل wp-config.php اضافه کنید:
define('WP_TEMP_DIR', dirname(__FILE__) . '/wp-content/temp/');
- تغییرات اعمال شده را ذخیره کنید و فایل جدید را بر روی هاست خود آپلود کنید.
- به پوشه wp-content بروید.
- یک پوشه جدید به اسم Temp ایجاد کنید.
- در آخر به وبسایت وردپرسی خود بروید و مجدد برای آپلود تصاویر تلاش کنید.
4. حل خطای Uploaded Image File Exceeds the upload_max_filesize_Directive
این آپلود یعنی The uploaded file exceeds the upload_max_filesize directive in php.ini. زمانی رخ میدهد که یک فایل بزرگ را در وردپرس آپلود میکنید. این فایل میتواند یک عکس یا حتی قالب وردپرس باشد. دلیل آن هم این است که وردپرس در بارگذاری فایلها محدودیتهایی از نظر حجم آنها دارد.
همانطور که واضح است برای رفع این ارور باید محدودیت upload_max_filesize را از بین ببرید و مقدار آن را افزایش دهید. برای این کار چند راه پیش رو دارید:
افزایش حافظه از طریق فایل htaccess
برای این کار کافی است که به فایل htaccess دسترسی داشته باشید. فرقی نمیکند از کنترل پنل هاست خود استفاده میکنید یا از طریق FTP به وبسایت خود متصل میشوید. فایل htaccess را جستجو کنید و برای ویرایش آن را آماده کنید. برای این کار کافی است بر روی آن کلیک راست کنید و گزینه Edit را انتخاب کنید.
حال قطعه کد زیر را به انتهای این فایل اضافه کنید:
php_value upload_max_filesize 256M
بعد از اعمال این تغییرات مجدد برای بارگذاری فایل تلاش کنید. اگر باز هم با ارور مواجه شوید باید کدهای زیر را به فایل htaccess اضافه کنید:
php_value post_max_size 256M
php_value memory_limit 512M
php_value max_input_time 180
php_value max_execution_time 180
در آخر فراموش نکنید که این تغییرات را ذخیره کنید. در غیر اینصورت اعمال نمیشوند. همچنین به یاد داشته باشید که شما میتوانید مقدار حافظه مورد نظر را بر روی حداکثر مقداری که هاستتان پشتیبانی میکند قرار دهید.
افزایش حافظه از طریق wp-config.php
از طریق کنترل پنل هاست یا FTP به وبسایت خود متصل شوید. به دنبال فایل wp-config.php بگردید. این فایل عموماً بر روی Root قرار گرفته است. قطعه کد زیر را قبل از جمله Happy Blogging جایگذاری کنید:
@ini_set('upload_max_size' , '256M' );
بهروزرسانی فایل php.ini
یکی دیگر از روشها برای افزایش مقدار حافظه بهروزرسانی فایل php.ini است. در مسیر /etc/php/7.0/cli/php.ini به دنبال فایل php.ini بگردید. این فایل را باز کنید و در آن عبارت upload_max_filesize را جستجو کنید. حال کافی است تا مقدار آن را افزایش دهید. در آخر هم تغییرات اعمال شده را ذخیره کنید.
اگر به هیچکدام از روشهای بالا دسترسی ندارید برای افزایش مقدار حافظه و از بین بردن این محدودیت کافی است تا با سرویس هاستینگ خود تماس بگیرید. در نهایت از آنها بخواهید این محدودیت را از بین ببرند.
5. حل خطای HTTP در زمان آپلود تصویر در Godaddy
همانطور که میدانید Godaddy هم مانند cPanel یک کنترل پنل هاست است. برای رفع ارور آپلود تصویر وردپرس از طریق Godaddy کافی است قطعه کد زیر را به فایل function.php اضافه کنید:
<?php
/** این قطعه کد کتابخانه استفاده شده در وردپرس را تغییر میدهد **/
add_filter( 'wp_image_editors', 'change_graphic_lib' );
function change_graphic_lib($array) {
return array( 'WP_Image_Editor_GD', 'WP_Image_Editor_Imagick' );
}
?>
6. حل خطای HTTP در زمان آپلود تصویر در DreamHost
خطای HTTP در زمان آپلود تصویر در DreamHost یکی از خطاهای رایجی است که راهحل روشن و واضحی هم ندارد. گاهی اوقات نیاز است بهکلی هاست خود را تغییر دهید. گاهی هم با غیرفعال کردن قالبها و پلاگینها این مشکل برطرف میشود. پیشنهاد ما این است که به سراغ قالبها و افزونههای وردپرس خود بروید. از بین آنها تمامی موارد اضافی را حذف کنید و از شر آنها خلاص شوید.
در اینجا سعی کردیم تمامی جوانب را در نظر بگیریم. اگر این مطلب از استودیو بهتر برای شما مفید بود نظرات خود را با ما به اشتراک بگذارید، همچنین لینک این مطلب را در شبکههای اجتماعی قرار دهید. از طرفی اگر تجربه شخصی در رفع خطای آپلود تصویر وردپرس دارید حتماً با ما در میان بگذارید.