خطای «آپلود ناموفق» در وردپرس چیست؟

یکی از خطاهای آزاردهنده هنگام مدیریت سایت وردپرسی، نمایش پیام‌هایی مانند «آپلود ناموفق بود»، «در بارگذاری پرونده خطایی رخ داده است»، HTTP error یا Failed to write file to disk هنگام بارگذاری تصویر، ویدئو، فایل PDF یا سایر رسانه‌هاست.

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

بنابراین برای رفع خطای آپلود ناموفق در وردپرس بهتر است به‌جای تغییر تصادفی تنظیمات، ابتدا مشخص کنید خطا در چه شرایطی رخ می‌دهد و سپس راه‌حل متناسب با همان نشانه را اجرا کنید.

تشخیص سریع: اگر فقط فایل‌های بزرگ آپلود نمی‌شوند، محدودیت حجم را بررسی کنید. اگر پیام «نوع فایل مجاز نیست» می‌بینید، سراغ فرمت فایل بروید. اگر پیام «Failed to write file to disk» نمایش داده می‌شود، فضای هاست، پوشه موقت و مجوزهای نوشتن اهمیت بیشتری دارند. اگر تصویر آپلود می‌شود اما پردازش آن ناموفق است، ابعاد تصویر، حافظه PHP و خطاهای مربوط به پردازش تصویر را بررسی کنید.

خطای Upload Failed هنگام بارگذاری فایل در وردپرس
خطای آپلود ناموفق در وردپرس

چرا وردپرس فایل را آپلود نمی‌کند؟

هنگام بارگذاری فایل، مرورگر درخواست را به سرور می‌فرستد. PHP اطلاعات فایل را دریافت و پردازش می‌کند و وردپرس تلاش می‌کند آن را در مسیر رسانه ذخیره کند. اگر فایل تصویری باشد، ممکن است مرحله پردازش تصویر و ساخت اندازه‌های مختلف آن نیز انجام شود. اختلال در هرکدام از این مراحل می‌تواند باعث شکست آپلود شود.

مهم‌ترین علت‌های این مشکل عبارت‌اند از:

  • بیشتر بودن حجم فایل از محدودیت آپلود هاست
  • تنظیم نامناسب upload_max_filesize یا post_max_size در PHP
  • پر شدن فضای دیسک یا سهمیه ذخیره‌سازی هاست
  • مجاز نبودن فرمت یا نوع MIME فایل
  • نداشتن مجوز نوشتن در پوشه wp-content/uploads
  • وجود مشکل در پوشه موقت آپلود PHP
  • تداخل افزونه امنیتی، بهینه‌سازی تصویر یا مدیریت رسانه
  • کمبود حافظه یا خطا در پردازش تصاویر بزرگ
  • محدودیت وب‌سرور، فایروال، CDN یا پراکسی
  • خطاهای PHP، JavaScript یا ارتباط مرورگر با سرور

تابع wp_max_upload_size() در وردپرس سقف مجاز آپلود را بر اساس محدودیت‌های PHP محاسبه می‌کند. به همین دلیل، افزایش یک پارامتر به‌تنهایی همیشه مشکل را برطرف نمی‌کند؛ باید تنظیمات مؤثر بر کل درخواست نیز با یکدیگر سازگار باشند.

پیشنهاد مطالعه: خطای 403 Forbidden در وردپرس چیست؟

قبل از هر کاری، یک فایل کوچک را آزمایش کنید

ابتدا از پیشخوان وردپرس به مسیر رسانه ← افزودن بروید و یک تصویر JPG یا PNG کوچک، مثلاً با حجم ۱۰۰ تا ۳۰۰ کیلوبایت، آپلود کنید. اگر فایل کوچک با موفقیت بارگذاری شد اما فایل بزرگ‌تر شکست خورد، محدودیت حجم یا زمان پردازش یکی از احتمال‌های اصلی است.

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

در صفحه «رسانه ← افزودن» می‌توانید رابط آپلود و حداکثر حجم اعلام‌شده را بررسی کنید.
در صفحه «رسانه ← افزودن» می‌توانید رابط آپلود و حداکثر حجم اعلام‌شده را بررسی کنید.

روش اول: حداکثر حجم آپلود وردپرس را بررسی کنید

یکی از رایج‌ترین دلایل خطای آپلود ناموفق، بیشتر بودن حجم فایل از سقف مجاز سرور است. برای مثال، اگر محدودیت مؤثر آپلود ۲ مگابایت باشد، بارگذاری یک فایل ۲۰ مگابایتی با شکست مواجه می‌شود؛ حتی اگر در پیشخوان وردپرس بتوانید فایل را انتخاب کنید.

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

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

پیشنهاد مطالعه: خطای ایجاد اتصال به پایگاه داده در وردپرس چیست؟

روش دوم: مقدارهای upload_max_filesize و post_max_size را تنظیم کنید

PHP دو محدودیت مهم برای دریافت فایل دارد. مقدار upload_max_filesize حداکثر اندازه هر فایل آپلودی را مشخص می‌کند و post_max_size سقف اندازه کل داده‌های ارسالی در یک درخواست POST را تعیین می‌کند.

برای مثال، اگر قرار است فایل‌هایی تا حدود ۶۴ مگابایت آپلود شوند، تنظیماتی مشابه زیر می‌تواند نقطه شروع مناسبی باشد:

upload_max_filesize = 64M
post_max_size = 80M

در این مثال، مقدار post_max_size کمی بیشتر از upload_max_filesize در نظر گرفته شده است تا فضای لازم برای کل درخواست نیز وجود داشته باشد. مقادیر دقیق باید بر اساس نیاز واقعی سایت، محدودیت‌های سرور و اندازه فایل‌های مورد استفاده تعیین شوند.

نکته مهم: اگر upload_max_filesize را افزایش دهید اما post_max_size همچنان کمتر باشد، ممکن است آپلود فایل‌های بزرگ همچنان شکست بخورد. همچنین تنظیمات وب‌سرور یا سرویس واسط می‌تواند محدودیت دیگری ایجاد کند که با تغییر PHP به‌تنهایی برطرف نمی‌شود.

برای اطلاعات دقیق‌تر می‌توانید مستندات رسمی وردپرس درباره تنظیمات PHP و محدودیت اندازه فایل‌های آپلودی را مطالعه کنید.

روش سوم: تنظیمات PHP را از کنترل‌پنل هاست تغییر دهید

اگر به فایل اصلی php.ini دسترسی ندارید، کنترل‌پنل هاست را بررسی کنید. بسته به نوع سرویس ممکن است گزینه‌هایی مانند PHP Settings، MultiPHP INI Editor یا Select PHP Version در دسترس باشند.

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

نمونه‌ای از تنظیمات PHP در کنترل‌پنل میزبانی؛ گزینه‌ها و ظاهر پنل شما ممکن است متفاوت باشد
نمونه‌ای از تنظیمات PHP در کنترل‌پنل میزبانی؛ گزینه‌ها و ظاهر پنل شما ممکن است متفاوت باشد

در بعضی سرورها امکان استفاده از فایل‌های تنظیمات محلی مانند .user.ini وجود دارد و در برخی محیط‌ها روش‌های دیگری پشتیبانی می‌شوند. دستورهایی که برای یک نوع سرور کار می‌کنند، لزوماً روی سرور دیگر معتبر نیستند؛ بنابراین قبل از تغییر فایل‌هایی مانند .htaccess، نوع وب‌سرور و روش مدیریت PHP را مشخص کنید.

اگر گزینه‌ای برای تغییر این تنظیمات ندارید یا مقادیر پس از ذخیره تغییر نمی‌کنند، از پشتیبانی هاست بخواهید مقدارهای مؤثر upload_max_filesize، post_max_size و محدودیت‌های وب‌سرور را بررسی کند.

روش چهارم: فضای هاست و سهمیه ذخیره‌سازی را بررسی کنید

گاهی فایل به‌اندازه کافی کوچک است و تنظیمات PHP نیز درست هستند، اما آپلود به دلیل پر بودن فضای هاست شکست می‌خورد. برای مثال، اگر فایل ۵۰۰ مگابایتی می‌خواهید بارگذاری کنید ولی فقط ۲۰۰ مگابایت فضای خالی دارید، افزایش محدودیت حجم کمکی نخواهد کرد.

در کنترل‌پنل هاست، میزان فضای مصرف‌شده و در صورت وجود، سهمیه فایل‌ها یا inode را بررسی کنید. فضای ذخیره‌سازی ممکن است توسط موارد زیر مصرف شده باشد:

  • نسخه‌های پشتیبان قدیمی
  • فایل‌های گزارش خطا و لاگ
  • کش‌های ذخیره‌شده روی سرور
  • فایل‌های موقت و نسخه‌های تکراری
  • ایمیل‌های ذخیره‌شده در همان حساب میزبانی
  • رسانه‌های قدیمی و فایل‌های حجیم استفاده‌نشده

فایل‌ها را بدون بررسی حذف نکنید؛ به‌خصوص فایل‌های موجود در wp-content ممکن است برای اجرای سایت ضروری باشند. اگر مشخص نیست کدام فایل‌ها را می‌توان پاک کرد، از پشتیبانی هاست کمک بگیرید.

روش پنجم: فرمت و نوع فایل را بررسی کنید

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

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

آیا تغییر پسوند فایل مشکل را حل می‌کند؟

خیر؛ تغییر نام example.xyz به example.jpg فایل را به تصویر JPG تبدیل نمی‌کند. پسوند فایل باید با محتوای واقعی آن مطابقت داشته باشد. اگر لازم است فایل در قالب دیگری بارگذاری شود، آن را با نرم‌افزار مناسب به فرمت صحیح تبدیل کنید.

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

پیشنهاد مطالعه: خطای 500 Internal Server Error در وردپرس چیست؟

روش ششم: نام فایل را ساده کنید

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

برای نمونه، به‌جای نامی طولانی مانند تصویر نهایی محصول شماره ۲ (نسخه جدید).jpg، نامی مانند product-02.jpg را امتحان کنید. از فاصله‌های متعدد و کاراکترهای غیرمعمول پرهیز کنید و دوباره آپلود را انجام دهید.

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

روش هفتم: مجوزهای پوشه uploads و مالکیت فایل‌ها را بررسی کنید

وردپرس باید بتواند فایل‌های رسانه را در پوشه آپلود ذخیره کند. مسیر معمول این پوشه عبارت است از:

wp-content/uploads/

اگر وب‌سرور یا PHP اجازه نوشتن در این مسیر را نداشته باشد، ممکن است با پیام‌هایی مانند Failed to write file to disk یا خطاهای مربوط به انتقال فایل مواجه شوید. این مشکل بیشتر پس از انتقال سایت به هاست جدید، بازیابی بکاپ یا تغییر مالکیت فایل‌ها دیده می‌شود.

از طریق File Manager یا FTP، مجوزهای پوشه uploads و زیرپوشه‌های آن را بررسی کنید. در بسیاری از محیط‌های لینوکسی، مجوز 755 برای پوشه‌ها و 644 برای فایل‌ها نقطه شروع رایجی است؛ اما مالکیت فایل‌ها و تنظیمات کاربر اجراکننده PHP نیز اهمیت دارند. این اعداد برای همه سرورها نسخه قطعی نیستند.

هشدار امنیتی: مجوز پوشه‌ها را بدون بررسی روی 777 قرار ندهید. این کار ممکن است دسترسی نوشتن غیرضروری ایجاد کند و مشکل امنیتی به وجود آورد. اگر مجوزها ظاهراً درست هستند اما آپلود انجام نمی‌شود، از مدیر سرور بخواهید مالکیت فایل‌ها و دسترسی کاربر وب‌سرور را بررسی کند.

روش هشتم: پوشه موقت آپلود PHP را بررسی کنید

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

اگر فضای هاست کافی است و مجوز پوشه رسانه نیز درست به نظر می‌رسد، اما همچنان پیام خطای نوشتن فایل روی دیسک دریافت می‌کنید، از پشتیبانی هاست بخواهید مسیر موقت PHP و دسترسی‌های آن را بررسی کند. تغییر مستقیم تنظیم upload_tmp_dir بدون شناخت مسیر مناسب سرور توصیه نمی‌شود.

روش نهم: اگر فقط تصاویر مشکل دارند، پردازش تصویر را بررسی کنید

گاهی تصویر انتخاب و به سرور ارسال می‌شود، اما وردپرس هنگام پردازش آن یا ساخت نسخه‌های کوچک‌تر با خطا مواجه می‌شود. در این حالت، مشکل لزوماً به محدودیت حجم آپلود مربوط نیست.

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

  • ابعاد تصویر را کاهش دهید و نسخه‌ای با اندازه متناسب با کاربرد آن ذخیره کنید.
  • تصویر را با نرم‌افزار معتبر دوباره به JPG, PNG یا WebP ذخیره کنید؛ البته فقط اگر این فرمت در سایت پشتیبانی می‌شود.
  • حافظه در دسترس PHP و گزارش خطاهای مربوط به پردازش تصویر را بررسی کنید.
  • از پشتیبانی هاست بخواهید وضعیت کتابخانه‌های پردازش تصویر مانند GD یا Imagick را بررسی کند.
  • اگر مشکل بعد از نصب افزونه بهینه‌سازی تصویر شروع شده است، آن افزونه را در یک بازه آزمایشی کنترل‌شده بررسی کنید.

توجه کنید که WP_MEMORY_LIMIT با محدودیت حجم فایل یکسان نیست. افزایش حافظه ممکن است به پردازش تصویر کمک کند، اما محدودیت‌های PHP، وب‌سرور یا فضای دیسک را برطرف نمی‌کند. همچنین تغییر مستقیم کد برای غیرفعال کردن پردازش تصویر، بدون تشخیص علت، راه‌حل مناسبی نیست.

روش دهم: افزونه‌ها را برای پیدا کردن تداخل بررسی کنید

افزونه‌های امنیتی، بهینه‌سازی تصاویر، مدیریت رسانه، محدودکننده نوع فایل یا افزونه‌هایی که درخواست‌های ورودی را فیلتر می‌کنند، ممکن است با فرآیند آپلود تداخل داشته باشند.

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

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

این آزمایش را ترجیحاً در محیط آزمایشی انجام دهید. اگر مجبور هستید در سایت اصلی تست کنید، ابتدا بکاپ بگیرید و توجه داشته باشید که غیرفعال کردن افزونه امنیتی یا افزونه‌های حیاتی ممکن است روی عملکرد سایت اثر بگذارد.

اگر به پیشخوان وردپرس دسترسی ندارید

در صورت نیاز می‌توان افزونه‌ها را از طریق File Manager یا FTP به‌صورت موقت غیرفعال کرد؛ اما تغییر نام پوشه plugins ممکن است چندین قابلیت سایت را هم‌زمان از کار بیندازد. اگر با ساختار وردپرس آشنا نیستید، این کار را با راهنمایی پشتیبان فنی انجام دهید و پس از پایان آزمایش، وضعیت پوشه‌ها را به حالت مناسب بازگردانید.

روش یازدهم: قالب و کدهای سفارشی را بررسی کنید

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

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

پیشنهاد مطالعه: خطای 404 چیست؟ چطور 404 را رفع کنیم؟

روش دوازدهم: خطاهای PHP را با ابزار Debug بررسی کنید

اگر روش‌های قبلی نتیجه ندادند، گزارش خطا می‌تواند علت دقیق‌تری نشان دهد. وردپرس امکان ثبت برخی خطاها را با تنظیم‌های WP_DEBUG و WP_DEBUG_LOG فراهم می‌کند.

در صورت نیاز، با تهیه بکاپ و ترجیحاً در محیط آزمایشی، می‌توانید تنظیماتی مشابه زیر را در فایل wp-config.php و پیش از خط پایان تنظیمات وردپرس قرار دهید. اگر این ثابت‌ها از قبل تعریف شده‌اند، آن‌ها را دوباره اضافه نکنید؛ مقدار موجود را به‌درستی اصلاح کنید.

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

پس از تکرار عملیات آپلود، در صورت فعال بودن ثبت لاگ و وجود خطای قابل ثبت، فایل زیر را بررسی کنید:

wp-content/debug.log

این فایل ممکن است مسیرهای سرور یا اطلاعات حساس مربوط به خطاها را در خود داشته باشد؛ بنابراین آن را برای مدت طولانی در دسترس عمومی قرار ندهید. همچنین همه خطاهای وب‌سرور یا PHP الزاماً در این فایل ثبت نمی‌شوند و ممکن است لازم باشد لاگ PHP، وب‌سرور یا هاست بررسی شود.

پس از پایان عیب‌یابی، Debug را خاموش کنید. اگر قبلاً تنظیمات متفاوتی داشته‌اید، همان مقادیر امن قبلی را برگردانید؛ صرفاً یک دستور جدید با مقدار false به فایل اضافه نکنید.

روش سیزدهم: کد وضعیت درخواست را در مرورگر بررسی کنید

اگر فایل انتخاب می‌شود اما هنگام آپلود خطا رخ می‌دهد، ابزارهای توسعه مرورگر می‌توانند مشخص کنند درخواست در کدام مرحله شکست خورده است. در Chrome یا Edge کلیدهای F12 یا Ctrl + Shift + I را فشار دهید و به بخش Network بروید. سپس دوباره آپلود را انجام دهید و درخواست مربوط به آن را پیدا کنید.

کد وضعیت HTTP به‌تنهایی علت قطعی را مشخص نمی‌کند، اما سرنخ مهمی است:

  • 400: درخواست نامعتبر یا داده‌ای که سرور نمی‌تواند پردازش کند.
  • 403: درخواست از طرف سرور، فایروال یا یک قانون امنیتی مسدود شده است.
  • 413: اندازه درخواست از محدودیت یکی از لایه‌های سرور بیشتر است.
  • 500: خطای داخلی برنامه یا سرور؛ لاگ‌ها باید بررسی شوند.
  • 502 یا 503: ممکن است مشکل از ارتباط بین سرویس‌ها، پراکسی یا در دسترس نبودن موقت سرور باشد.

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

اگر هیچ درخواستی در Network ثبت نمی‌شود

اگر با کلیک روی دکمه آپلود هیچ درخواست مرتبطی ظاهر نمی‌شود، ممکن است مشکل از JavaScript، بارگذاری ناقص صفحه مدیریت، افزونه یا خطای مرورگر باشد. در این شرایط، بخش Console را هم بررسی کنید و در صورت امکان صفحه را با مرورگر دیگری آزمایش کنید.

روش چهاردهم: محدودیت زمان اجرا و فایروال را بررسی کنید

بارگذاری فایل‌های بزرگ ممکن است زمان بیشتری نیاز داشته باشد. تنظیم max_execution_time، محدودیت‌های پردازش PHP و Timeoutهای وب‌سرور یا پراکسی می‌توانند در برخی سناریوها روی نتیجه اثر بگذارند. با این حال، افزایش زمان اجرا بدون توجه به منابع سرور راه‌حل همیشگی نیست.

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

در چنین شرایطی مسیر درخواست معمولاً از مرورگر به سرویس واسط یا فایروال و سپس به وب‌سرور، PHP و وردپرس می‌رسد. از پشتیبانی هاست یا سرویس CDN بخواهید بررسی کند که آیا درخواست آپلود در یکی از این لایه‌ها مسدود یا قطع می‌شود. برای آزمایش، تنظیمات امنیتی را بدون برنامه و برای مدت طولانی غیرفعال نکنید.

اگر فقط یک فایل آپلود نمی‌شود، چه کار کنیم؟

وقتی سایر فایل‌ها به‌درستی آپلود می‌شوند و تنها یک فایل مشکل دارد، پیش از تغییر تنظیمات کل سایت، خود فایل را بررسی کنید:

  1. نام فایل را به یک نام کوتاه و ساده تغییر دهید.
  2. حجم فایل را کاهش دهید و دوباره امتحان کنید.
  3. فایل را با نرم‌افزار مناسب باز و مجدداً ذخیره کنید.
  4. اگر فرمت آن مجاز نیست، فایل را به فرمت معتبر و پشتیبانی‌شده تبدیل کنید.
  5. یک فایل دیگر با همان فرمت را برای مقایسه آپلود کنید.
  6. در صورت ادامه مشکل، کد وضعیت درخواست و پیام دقیق خطا را بررسی کنید.

برای مثال، اگر چند تصویر JPG آپلود می‌شوند اما یک تصویر خاص نه، افزایش upload_max_filesize لزوماً اقدام اول نیست. ممکن است همان فایل خراب باشد، ابعاد بسیار بزرگی داشته باشد یا هنگام پردازش با خطا مواجه شود.

اگر هیچ فایلی آپلود نمی‌شود، از کجا شروع کنیم؟

اگر حتی یک تصویر کوچک هم آپلود نمی‌شود، این ترتیب عیب‌یابی را دنبال کنید:

  1. فضای هاست: فضای دیسک و سهمیه ذخیره‌سازی را بررسی کنید.
  2. محدودیت PHP: مقدارهای upload_max_filesize و post_max_size را بررسی کنید.
  3. پوشه رسانه و پوشه موقت: مجوز نوشتن، مالکیت و مسیر موقت آپلود را بررسی کنید.
  4. فرمت فایل: مطمئن شوید فایل آزمایشی از نوع مجاز است.
  5. افزونه‌ها و قالب: در محیط مناسب تداخل احتمالی را بررسی کنید.
  6. گزارش خطا: لاگ PHP و سرور را بررسی کنید.
  7. درخواست مرورگر: کد وضعیت HTTP را در بخش Network ببینید.
  8. فایروال و پراکسی: اگر درخواست مسدود یا قطع می‌شود، قوانین امنیتی و محدودیت‌های لایه واسط را بررسی کنید.

جدول تشخیص سریع خطای آپلود ناموفق در وردپرس

نشانه یا پیام خطاعلت‌های احتمالیاقدام پیشنهادی
فقط فایل‌های بزرگ آپلود نمی‌شوندمحدودیت حجم یا اندازه درخواستبررسی upload_max_filesize، post_max_size و محدودیت وب‌سرور
پیام «نوع فایل مجاز نیست»فرمت یا MIME Type غیرمجازبررسی نوع واقعی فایل و فرمت‌های مجاز
Failed to write file to diskفضای ناکافی، مجوز نوشتن یا پوشه موقتبررسی فضای هاست، uploads و مسیر موقت PHP
فقط یک فایل خاص آپلود نمی‌شودخرابی فایل، نام نامناسب یا مشکل پردازشتغییر نام، ذخیره مجدد و آزمایش فایل جایگزین
فقط تصاویر بزرگ مشکل دارندابعاد زیاد، کمبود حافظه یا خطای پردازش تصویرکاهش ابعاد و بررسی لاگ PHP و کتابخانه تصویر
خطای 413اندازه درخواست بیش از حد مجازبررسی محدودیت PHP، وب‌سرور و پراکسی
خطای 403قانون امنیتی، فایروال یا دسترسی نامناسببررسی لاگ امنیتی و مجوزها
خطای 500 یا 502خطای برنامه یا ارتباط بین سرویس‌هابررسی لاگ PHP و وب‌سرور
آپلود شروع می‌شود اما متوقف می‌شودTimeout، اتصال ناپایدار یا محدودیت سروربررسی Network، Timeout و منابع هاست
بعد از انتقال هاست مشکل شروع شدهتفاوت تنظیمات PHP، مالکیت یا مجوزهامقایسه تنظیمات سرور جدید و بررسی پوشه‌ها

آیا برای رفع خطای آپلود باید افزونه نصب کنیم؟

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

نصب چند افزونه برای امتحان کردن راه‌حل‌های مختلف ممکن است تداخل‌های جدیدی ایجاد کند. بهتر است ابتدا علت را مشخص کنید و فقط در صورت نیاز از افزونه معتبر و متناسب با همان نیاز استفاده کنید.

اشتباهات رایج هنگام رفع خطای آپلود

  • افزایش بی‌دلیل همه محدودیت‌ها: افزایش حجم و زمان اجرا، بدون بررسی علت، ممکن است منابع سرور را بی‌دلیل درگیر کند.
  • قرار دادن مجوزها روی 777: این کار می‌تواند ریسک امنیتی ایجاد کند و راه‌حل استانداردی برای همه مشکلات نیست.
  • تغییر پسوند بدون تبدیل فایل: تغییر نام، فرمت واقعی فایل را عوض نمی‌کند.
  • غیرفعال کردن هم‌زمان چندین افزونه در سایت اصلی: در این حالت پیدا کردن عامل مشکل دشوارتر می‌شود و ممکن است قابلیت‌های مهم سایت از کار بیفتند.
  • حذف فایل‌های ناشناخته از هاست: حذف اشتباه فایل‌ها می‌تواند باعث اختلال در وردپرس شود.
  • نادیده گرفتن پیام دقیق خطا: متن خطا و کد وضعیت HTTP می‌توانند مسیر عیب‌یابی را کوتاه کنند.

چک‌لیست نهایی برای رفع خطای آپلود ناموفق

یک فایل کوچک تست کنید ← متن خطا را بخوانید ← محدودیت حجم و تنظیمات PHP را بررسی کنید ← فضای هاست را بررسی کنید ← فرمت فایل را کنترل کنید ← مجوز و مالکیت پوشه‌های آپلود را بررسی کنید ← در صورت نیاز پوشه موقت PHP را بررسی کنید ← افزونه‌ها و قالب را آزمایش کنید ← لاگ PHP و کد وضعیت Network را بررسی کنید ← محدودیت‌های فایروال و پراکسی را بررسی کنید.

هر بار فقط یک تغییر انجام دهید و پس از آن دوباره آپلود را آزمایش کنید. این روش کمک می‌کند علت اصلی مشخص شود و از تغییرات غیرضروری در تنظیمات سایت جلوگیری شود.

جمع‌بندی

خطای «آپلود ناموفق» در وردپرس می‌تواند از محدودیت حجم فایل، تنظیمات PHP، فرمت نامعتبر، پر بودن فضای هاست، مجوزهای پوشه، پوشه موقت آپلود، تداخل افزونه‌ها یا خطاهای سرور ناشی شود. راه‌حل درست به نشانه‌ای بستگی دارد که هنگام آپلود مشاهده می‌کنید.

اگر فقط فایل‌های بزرگ مشکل دارند، ابتدا محدودیت‌های حجم را بررسی کنید. اگر پیام «Failed to write file to disk» نمایش داده می‌شود، فضای دیسک، مجوزها و پوشه موقت اهمیت بیشتری دارند. اگر فقط تصاویر با مشکل مواجه‌اند، ابعاد تصویر و خطاهای پردازش را بررسی کنید. در صورت مشاهده کدهایی مانند 403، 413 یا 500 نیز باید لایه‌ای را پیدا کنید که درخواست را مسدود یا متوقف کرده است.

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

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

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

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

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