راهنمای جامع و گام‌به‌گام رفع خطای «آپلود ناموفق» در وردپرس — از تشخیص تا پیشگیری

آخرین بروزرسانی در تاریخ می 31, 2026 توسط PersiaWebAdmin

تصور کنید ساعت‌ها زمان گذاشته‌اید، یک تصویر عالی برای نوشتهٔ جدیدتان طراحی کرده‌اید، اما وقتی می‌خواهید آن را در وردپرس بارگذاری کنید، با پیغام مرموز «آپلود ناموفق» (Upload Failed) یا «خطای HTTP» روبرو می‌شوید. این خطا ظاهر ساده‌ای دارد، اما پشت آن ده‌ها علت فنی می‌تواند پنهان باشد. در این راهنما، تمام دلایل ممکن را موشکافی می‌کنیم، روش تشخیص دقیق را آموزش می‌دهیم و برای هر مشکل، راه‌حل گام‌به‌گام ارائه می‌دهیم. همچنین نکات پیشرفته و پیشگیرانه‌ای را یاد می‌گیرید که دیگر هرگز با این خطا غافلگیر نشوید.

فهرست آنچه خواهید آموخت

  1. خطای «آپلود ناموفق» واقعاً چه می‌گوید؟
  2. قدم اول: فعال‌سازی لاگ خطاها و مشاهده پیام واقعی
  3. بررسی و افزایش محدودیت‌های آپلود در PHP
  4. رفع کمبود حافظه PHP
  5. اصلاح دسترسی‌های فایلی و مالکیت پوشه Uploads
  6. خطای HTTP در آپلود تصاویر — بزرگ‌ترین دردسر
  7. تداخل افزونه‌ها و پوسته‌ها
  8. مشکلات کتابخانه‌های پردازش تصویر (GD / Imagick)
  9. خطاهای مربوط به مرورگر و کش
  10. عیب‌یابی سمت سرور: mod_security، Suhosin، PHP-FPM
  11. وقتی فضای هاست پر شده است
  12. مشکلات CDN، SSL و فایروال
  13. استفاده از ابزارهای رسمی وردپرس برای عیب‌یابی
  14. رفع مشکل با بازنشانی مسیر آپلود و فایل .htaccess
  15. چک‌لیست سریع و جمع‌بندی

۱. خطای «آپلود ناموفق» واقعاً چه می‌گوید؟

وقتی وردپرس نمی‌تواند فایلی را در پوشهٔ wp-content/uploads/ ذخیره کند، خطای «آپلود ناموفق» را نمایش می‌دهد. اما این خطا می‌تواند به شکل‌های مختلفی ظاهر شود:

  • «آپلود ناموفق» یا “Upload Failed”
  • «خطای HTTP» (HTTP Error)
  • «فایل بارگذاری نشد» یا “The uploaded file could not be moved to wp-content/uploads”
  • گاهی هم فقط یک صفحه خالی یا نوار پیشرفت بی‌پایان.

نکته طلایی: خود وردپرس اگر دلیل دقیق را نداند، یک خطای عمومی نشان می‌دهد. ما باید کاری کنیم که پیام دقیق خطا آشکار شود.

۲. قدم اول: فعال‌سازی لاگ خطاها و مشاهده پیام واقعی

پیش از هر اقدامی، باید علت دقیق را ببینیم. دو راه در پیش داریم:

الف) فعال‌سازی حالت رفع اشکال وردپرس (WP_DEBUG)

وارد فایل wp-config.php شوید (از طریق FTP یا مدیریت فایل هاست) و کد زیر را پیش از خط /* That's all, stop editing! */ اضافه کنید:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

حالا یک بار دیگر فایل را آپلود کنید. سپس فایل /wp-content/debug.log را باز کنید. خطای دقیق آنجا نوشته شده است. (پس از پایان عیب‌یابی، این خطوط را حذف کرده یا مقدار آن‌ها را به false برگردانید.)

ب) استفاده از کنسول مرورگر

در مرورگر خود، کلید F12 را بزنید و به زبانهٔ Console بروید. هنگام آپلود، ممکن است خطاهای JavaScript یا درخواست‌های شکست‌خورده (در زبانه Network) نشان داده شود. اگر یک درخواست async-upload.php با وضعیت 500 یا 403 دیدید، مشکل سمت سرور است.

ج) لاگ خطاهای PHP سرور

در cPanel، به بخش Errors یا PHP Error Log بروید. معمولاً فایل error_log در ریشهٔ سایت یا پوشهٔ wp-admin اطلاعات ارزشمندی دارد.

پیشنهاد مطالعه : رفع خطای صفحه سفید وردپر

۳. بررسی و افزایش محدودیت‌های آپلود در PHP

شایع‌ترین علت آپلود ناموفق، بزرگ‌تر بودن حجم فایل نسبت به حد مجاز سرور است. سه مقدار در PHP این محدودیت را تعیین می‌کنند:

  • upload_max_filesize: حداکثر حجم هر فایل آپلودی
  • post_max_size: حداکثر حجم کل داده‌های ارسالی (باید بزرگ‌تر از upload_max_filesize باشد)
  • max_execution_time: مدت زمان مجاز اجرای اسکریپت (برای فایل‌های حجیم اهمیت دارد)

چگونه این مقادیر را بفهمیم؟

به پیشخوان > رسانه > افزودن جدید بروید. معمولاً در پایین کادر آپلود نوشته شده: «حداکثر حجم آپلود: X مگابایت». همچنین می‌توانید با ساخت یک فایل PHP ساده به نام info.php حاوی کد <?php phpinfo(); ?>، تمام مقادیر PHP را ببینید.

روش افزایش محدودیت‌ها

روش ۱: فایل php.ini یا .user.ini
در ریشهٔ سایت (public_html) فایلی به نام php.ini یا .user.ini بسازید و این خطوط را در آن قرار دهید:

upload_max_filesize = 64M
post_max_size = 68M
max_execution_time = 300
memory_limit = 256M

(در هاست‌های اشتراکی، ساخت فایل .user.ini توصیه می‌شود.)

روش ۲: فایل htaccess.

php_value upload_max_filesize 64M
php_value post_max_size 68M
php_value max_execution_time 300

روش ۳: فایل wp-config.php

define('WP_MEMORY_LIMIT', '256M');

(این فقط حافظهٔ وردپرس را افزایش می‌دهد، نه محدودیت آپلود را، اما در کنار روش‌های دیگر کمک می‌کند.)

نکته: اگر هاست شما اجازهٔ تغییر این مقادیر را نمی‌دهد، حتماً با پشتیبانی هاست تماس بگیرید.

پیشنهاد مطالعه : راهنمای جامع رفع خطای 403 Forbidden در وردپرس

۴. رفع کمبود حافظه PHP

اگر تصاویر شما ابعاد بزرگی دارند (برای نمونه، ۵۰۰۰ پیکسل)، وردپرس هنگام کوچک کردن خودکار آن‌ها به حافظهٔ زیادی نیاز پیدا می‌کند. خطای «Allocated memory exhausted» در لاگ‌ها نشانهٔ همین مشکل است.

افزودن خط زیر به wp-config.php اغلب مشکل را حل می‌کند:

define('WP_MEMORY_LIMIT', '256M');

اگر جواب نداد، مقدار 512M را امتحان کنید. همچنین در php.ini یا .user.ini خط memory_limit = 256M را اضافه کنید.

پیشنهاد مطالعه: راهنمای افزایش حافظه وردپرس

۵. اصلاح دسترسی‌های فایلی و مالکیت پوشه Uploads

اگر وردپرس نتواند فایل را به پوشهٔ uploads منتقل کند، خطای «The uploaded file could not be moved to…» رخ می‌دهد.

پوشهٔ wp-content/uploads باید این شرایط را داشته باشد:

  • مجوز دسترسی (Permissions): پوشه‌ها ۷۵۵ یا ۷۵۰ و فایل‌ها ۶۴۴ (در برخی سرورها ۷۵۵ برای پوشه‌ها الزامی است)
  • مالکیت (Ownership): باید با کاربری که PHP اجرا می‌کند یکی باشد (معمولاً www-data یا همان نام کاربری هاست)

برای تغییر مجوزها با FTP: روی پوشهٔ uploads کلیک راست کنید و مجوزها را به ۷۵۵ تنظیم نمایید (و گزینهٔ بازگشتی برای زیرشاخه‌ها را تیک بزنید). اگر FTP این اجازه را نمی‌دهد، از بخش File Manager هاست استفاده کنید.

نکته حرفه‌ای: اگر مشکل مالکیت باشد، معمولاً فقط پشتیبانی هاست می‌تواند آن را اصلاح کند. به آن‌ها بگویید که مالکیت فایل‌ها را برای کاربر PHP بازنشانی کنند.


۶. خطای HTTP در آپلود تصاویر — بزرگ‌ترین دردسر

خطای HTTP (به‌ویژه در کتابخانهٔ رسانه) می‌تواند دلایل گوناگونی داشته باشد. قدم‌به‌قدم آن را بررسی کنید:

الف) غیرفعال کردن mod_security

mod_security یک فایروال سرور است که گاهی آپلود تصاویر را به اشتباه مسدود می‌کند. برای غیرفعال کردن آن، یک فایل .htaccess در پوشهٔ wp-admin بسازید و این کد را اضافه کنید:

<IfModule mod_security.c>
    SecFilterEngine Off
    SecFilterScanPOST Off
</IfModule>

اگر جواب نداد، از پشتیبانی هاست بخواهید قوانین مربوطه را بررسی کند.

ب) افزایش محدودیت‌های PHP-FPM (در هاست‌های NGINX)

در فایل تنظیمات PHP-FPM (معمولاً www.conf)، این مقادیر را افزایش دهید:

  • request_terminate_timeout
  • request_slowlog_timeout

این کار نیاز به دسترسی روت دارد و معمولاً توسط پشتیبانی انجام می‌شود.

ج) غیرفعال کردن بارگذاری با Ajax

گاهی افزونه‌ها یا پوسته‌ها در آپلود Ajax مشکل ایجاد می‌کنند. با افزودن این خط به wp-config.php می‌توانید آپلود Ajax را غیرفعال کنید:

define('CONCATENATE_SCRIPTS', false);

همچنین می‌توانید با فشردن دکمهٔ «مرورگر آپلود» (Browser Uploader) در صفحهٔ افزودن رسانه، آپلود قدیمی غیر Ajax را امتحان کنید. اگر کار کرد، مشکل از اسکریپت‌های صفحه است.

د) خطای ناشی از SSL یا آدرس نادرست

اگر سایت شما به‌تازگی SSL فعال کرده یا از HTTP به HTTPS منتقل شده است، ممکن است آدرس home و siteurl در جدول wp_options ناهماهنگ باشد. بررسی کنید که هر دو با https:// شروع شده باشند.

پیشنهاد مطالعه : تفاوت استاتیک‌سازی سایت و کشینگ چیست؟ 

۷. تداخل افزونه‌ها و پوسته‌ها

مقصرهای رایج: افزونه‌های امنیتی (مانند Wordfence یا iThemes Security)، افزونه‌های بهینه‌ساز تصویر (مانند Smush یا EWWW)، و حتی صفحه‌سازها.

روش تشخیص:

  • همهٔ افزونه‌ها را غیرفعال کنید (اگر به پیشخوان دسترسی دارید).
  • یک پوستهٔ پیش‌فرض (مانند Twenty Twenty-Five) را فعال کنید.
  • دوباره آپلود کنید. اگر موفق بود، افزونه‌ها را یکی‌یکی فعال کنید تا مقصر را پیدا کنید.

اگر دسترسی به پیشخوان ندارید، با FTP نام پوشهٔ plugins را به plugins_old تغییر دهید تا همهٔ افزونه‌ها غیرفعال شوند.


۸. مشکلات کتابخانه‌های پردازش تصویر (GD / Imagick)

وردپرس برای برش و تغییر اندازهٔ تصاویر از کتابخانهٔ GD یا Imagick استفاده می‌کند. اگر این کتابخانه‌ها خراب یا ناسازگار باشند، پس از آپلود با خطا مواجه می‌شوید.

بررسی:

  • در ابزار Site Health (پیشخوان > ابزارها > سلامت سایت) بخش «پردازش تصویر» را ببینید. اگر خطایی وجود داشته باشد، هشدار می‌دهد.
  • اگر Imagick مشکل دارد، می‌توانید با افزودن کد زیر به functions.php، وردپرس را وادار به استفاده از GD کنید (به شرطی که GD نصب شده باشد):
add_filter('wp_image_editors', 'change_graphic_library');
function change_graphic_library($editors) {
    return array('WP_Image_Editor_GD', 'WP_Image_Editor_Imagick');
}

همچنین می‌توانید با نصب افزونه‌هایی مانند Disable Imagick یا Force GD، Imagick را کاملاً کنار بگذارید.

در موارد نادر، لازم است کتابخانه‌ها را دوباره نصب کنید. از پشتیبانی هاست بخواهید php-gd و php-imagick را نصب یا بازنشانی کند.

۹. خطاهای مربوط به مرورگر و کش

گاهی مشکل از سمت کاربر است:

  • کش مرورگر و کوکی‌ها را پاک کنید.
  • یک مرورگر دیگر یا حالت Incognito (ناشناس) را امتحان کنید.
  • افزونه‌های مرورگر (مانند ad blocker) را غیرفعال کنید.
  • اگر از CDN مانند Cloudflare استفاده می‌کنید، گاهی فایل‌های موقت مشکل‌ساز می‌شوند. حالت «Development Mode» را در Cloudflare فعال کنید و دوباره تست کنید.

پیشنهاد مطالعه : حالت تعمیر (Maintenance Mode) در وردپرس چیست ؟

۱۰. عیب‌یابی سمت سرور: mod_security، Suhosin، PHP-FPM

علاوه بر mod_security که اشاره کردیم، برخی هاست‌ها از Suhosin (سامانهٔ امنیتی سخت‌گیرانهٔ PHP) استفاده می‌کنند که متغیرهای آپلود را محدود می‌کند. این متغیرها را بررسی کنید:

  • suhosin.upload.max_file_size
  • suhosin.post.max_array_depth (اگر چند تصویر همزمان آپلود می‌کنید)

برای تغییر این مقادیر به php.ini یا تنظیمات هاست نیاز دارید.

در برخی هاست‌های اشتراکی، خطای 406 «Not Acceptable» هنگام آپلود نشان‌دهندهٔ فیلتر شدن درخواست توسط mod_security است. لاگ سرور را از پشتیبانی درخواست کنید.

۱۱. وقتی فضای هاست پر شده است

اگر دیسک هاست پر باشد، آپلود ممکن نیست. در cPanel میزان مصرف دیسک (Disk Space) را بررسی کنید. فایل‌های بک‌آپ قدیمی، لاگ‌ها و ایمیل‌های انباشته را پاک کنید. همچنین پوشهٔ wp-content/uploads/ ممکن است به دلیل نسخه‌های متعدد تصاویر، حجم بسیار زیادی گرفته باشد. افزونهٔ Media Cleaner می‌تواند فایل‌های اضافی را شناسایی کند.

۱۲. مشکلات CDN، SSL و فایروال

  • اگر از CDN استفاده می‌کنید و آپلود مستقیماً به سرور اصلی انجام می‌شود (و نه به CDN)، معمولاً مشکلی پیش نمی‌آید. با این حال گاهی فایروال CDN (مانند Cloudflare) درخواست‌های POST بزرگ را مسدود می‌کند. در این صورت، می‌توانید قوانین WAF را به‌طور موقت غیرفعال کنید
  • اگر SSL به‌تازگی نصب شده و آدرس سایت ناهماهنگ است، ممکن است وردپرس فایل را به مسیر اشتباهی منتقل کند. در بخش تنظیمات > عمومی آدرس‌ها را با https:// بازبینی کنید.

۱۳. استفاده از ابزارهای رسمی وردپرس برای عیب‌یابی

افزونهٔ Health Check & Troubleshooting

این افزونهٔ رسمی وردپرس، بدون تأثیر بر بازدیدکنندگان، افزونه‌ها را غیرفعال و پوسته را تغییر می‌دهد. همچنین جزئیات محدودیت‌های سرور را نمایش می‌دهد. اگر خطای آپلود دارید، از این افزونه استفاده کنید تا به‌سرعت افزونهٔ متخلف را شناسایی کنید.

ابزار Site Health

در بخش پیشخوان > ابزارها > سلامت سایت، اطلاعات کاملی دربارهٔ محدودیت‌های PHP، کتابخانه‌های تصویری و فضای دیسک ارائه می‌شود. هر نشانهٔ قرمزی را جدی بگیرید.

۱۴. رفع مشکل با بازنشانی مسیر آپلود و فایل .htaccess

بازنشانی مسیر آپلود

اگر مسیر آپلود در پایگاه داده به اشتباه ذخیره شده باشد، خطای آپلود رخ می‌دهد. می‌توانید با قرار دادن خط زیر در wp-config.php آن را به مسیر درست هدایت کنید:

define('UPLOADS', 'wp-content/uploads');

همچنین در جدول wp_options رکورد upload_path را بررسی کنید (باید خالی یا wp-content/uploads باشد).

بازسازی فایل .htaccess

یک فایل .htaccess خراب می‌تواند کل فرایند آپلود را مختل کند. نام فایل .htaccess را به .htaccess_old تغییر دهید، سپس به پیشخوان > تنظیمات > پیوندهای یکتا بروید و بدون هیچ تغییری، یک بار روی «ذخیره تغییرات» کلیک کنید تا فایل جدید ساخته شود.


۱۵. چک‌لیست سریع و جمع‌بندی

اگر در حال حاضر با خطای آپلود روبرو هستید، این گام‌ها را به ترتیب دنبال کنید:

فعال کردن debug.log — ببینید خطا چیست.
بررسی حجم فایل — آیا از محدودیت فراتر است؟
افزایش upload_max_filesize، post_max_size و memory_limit از طریق php.ini یا htaccess.
تنظیم مجوزهای پوشهٔ uploads روی 755 و تصحیح مالکیت.
غیرفعال کردن همهٔ افزونه‌ها و آزمایش با پوستهٔ پیش‌فرض.
غیرفعال کردن mod_security و قوانین امنیتی.
بررسی خطای HTTP با غیرفعال کردن آپلود Ajax و استفاده از Browser Uploader.
استفاده از افزونهٔ Health Check برای شناسایی افزونهٔ متخلف.
بررسی فضای دیسک هاست و کتابخانه‌های تصویری.
خالی کردن کش مرورگر و سرور به‌همراه آزمایش در حالت ناشناس (Incognito).

با انجام این مراحل، نزدیک به ۹۹٪ از مشکلات آپلود در وردپرس برطرف می‌شود. نکتهٔ مهم این است که همیشه پیش از هر تغییر اساسی، یک نسخهٔ پشتیبان کامل از سایت خود تهیه کنید. اگر با این وجود همچنان مشکل دارید، لاگ خطاها را همراه با شرح دقیق مشکل برای ما ارسال کنید تا کمکتان کنیم. از این پس آپلودهایتان همیشه موفق و بی‌وقفه باشد.

اگر در رفع این مشکل نیاز به کمک دارید می توانید با کارشناسان ما در بخش پشتیبانی سایت وردپرس در تماس باشید تا بهترین خدمات را در اسرع وقت در اختیار شما قرار دهند.

دیجیتال مارکتینگ نوین با پرشیا وب

اشتراک بگذارید :

بنیامین ولادوست، بنیان‌گذار و مدیر تیم تخصصی پرشیا وب، بیش از یک دهه تجربه حرفه‌ای در عرصۀ طراحی وب‌سایت، سئو، تولید محتوا، فروش رپورتاژ و بک‌لینک دارد. او با ترکیب دانش فنی و درک عمیق از رفتار کاربران، به برندها و کسب‌وکارها کمک می‌کند تا نه‌تنها ظاهر دیجیتال قدرتمندی داشته باشند، بلکه در نتایج جستجوی گوگل هم بدرخشند.

از سال ۲۰۱۳ فعالیت حرفه‌ای خود را در حوزه طراحی وب آغاز کرد و تاکنون بیش از 300 پروژه طراحی سایت و بهینه‌سازی سئو در صنایع مختلف اجرا کرده است. تجربه عملی او در پروژه‌های واقعی، به ویژه در کسب‌وکارهای ایرانی، موجب شده است بتواند راهکارهایی کاملاً کاربردی و بومی برای رشد آنلاین ارائه دهد.

طراحی و توسعه وب‌سایت‌های شرکتی، فروشگاهی و شخصی با تمرکز بر سرعت، امنیت و تجربه کاربری (UX)
استراتژی‌های سئو فنی، on-page و off-page برای افزایش رتبه در نتایج گوگل
تحلیل رقبا، تحقیق کلمات کلیدی و اجرای کمپین‌های تولید محتوا
مشاوره و اجرای رپورتاژ آگهی و لینک‌سازی هدفمند برای بهبود اعتبار دامنه
طراحی کمپین‌های دیجیتال مارکتینگ یکپارچه برای برندهای نوپا و فعال
مطالب آموزشی و مقالات سئویی که توسط بنیامین ولادوست در وبلاگ “پرشیا وب” منتشر می‌شوند، بر پایه جدیدترین الگوریتم‌های گوگل و استانداردهای جهانی تدوین شده‌اند. او به عنوان متخصص مورد اعتماد در حوزه دیجیتال مارکتینگ، تاکنون در بیش از ۲۰ مجموعه آموزشی و ورکشاپ تخصصی سخنرانی و تدریس داشته است. بسیاری از کسب‌وکارهای آنلاین موفق، مسیر رشد خود را با آموزش‌ها و راهنمایی‌های او آغاز کرده‌اند.

تمام راهکارها و خدماتی که توسط بنیامین ولادوست و تیم “پرشیا وب” ارائه می‌شوند، بر پایه صداقت، شفافیت و تحلیل داده‌های واقعی بنا شده‌اند. هدف او ارائه مشاوره‌ای است که نه بر اساس تبلیغات، بلکه بر پایه داده و عملکرد واقعی کسب‌وکارها باشد.

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

پیمایش به بالا