مشکل آپلود نشدن تصاویر در وردپرس + راه حل

مشکل آپلود نشدن تصاویر در وردپرس + راه حل

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

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

قبل از شروع: اگر قرار است فایل‌هایی مثل wp-config.php، .htaccess یا تنظیمات سرور را تغییر دهید، ابتدا یک نسخه پشتیبان تهیه کنید. برای بسیاری از کاربران، بررسی تنظیمات از پنل هاست یا درخواست از پشتیبانی امن‌تر از ویرایش مستقیم فایل‌های سرور است.

مشکل آپلود نشدن فقط یک فایل

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

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

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

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

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

اگر هاست شما اجازه ویرایش php.ini را می‌دهد، پارامترهای اصلی مرتبط با حجم آپلود این‌ها هستند:

upload_max_filesize = 128M
post_max_size = 128M
max_execution_time = 300

upload_max_filesize حداکثر حجم یک فایل را تعیین می‌کند و post_max_size باید حداقل به اندازه آن باشد. قرار دادن این مقادیر داخل یک فایل جدید php.ini روی همه هاست‌ها عمل نمی‌کند؛ روش تغییر تنظیمات PHP به نوع سرور و شرکت هاست بستگی دارد.

نام فایل را ساده کنید

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

product-image-01.jpg

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

مشکل آپلود تصاویر در کتابخانه رسانه

مشکل آپلود نشدن یک فایل
نمونه خطای ساخت پوشه در کتابخانه رسانه وردپرس

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

Unable to create directory wp-content/uploads/...
Is its parent directory writable by the server?

وردپرس برای ذخیره تصاویر باید بتواند داخل wp-content/uploads پوشه و فایل ایجاد کند. این خطا می‌تواند از مجوز نامناسب، مالکیت اشتباه فایل‌ها یا تنظیمات هاست ایجاد شود.

مجوز پوشه uploads را بررسی کنید

مشکل آپلود نشدن یک فایل
انتخاب File Permissions برای پوشه uploads در FTP

از طریق FTP یا File Manager هاست وارد wp-content شوید، پوشه uploads را پیدا کنید و تنظیمات مجوز را باز کنید.

مشکل آپلود نشدن یک فایل
پنجره تغییر مجوز پوشه در FTP

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

گزینه Recurse into subdirectories را فقط زمانی فعال کنید که دقیقاً می‌دانید مجوز باید روی زیرپوشه‌ها نیز اعمال شود. برای پوشه‌ها گزینه Apply to directories only مناسب است.

خطای HTTP در وردپرس
تنظیم مجوز فایل‌های داخل uploads

برای فایل‌های معمولی، مقدار رایج 644 است. اگر می‌خواهید این مقدار فقط روی فایل‌ها اعمال شود، Apply to files only را انتخاب کنید.

مجوز 777 قرار ندهید. اگر 755 برای پوشه و 644 برای فایل جواب نمی‌دهد، ممکن است مشکل از مالکیت فایل‌ها یا تنظیمات کاربر PHP باشد و بهتر است هاست آن را بررسی کند.

رفع خطای HTTP هنگام آپلود تصاویر

نمونه HTTP Error هنگام آپلود فایل رسانه‌ای
نمونه HTTP Error هنگام آپلود فایل رسانه‌ای

پیام HTTP Error یک علت واحد ندارد. ممکن است مشکل موقتی ارتباط، محدودیت حافظه، پردازش تصویر، افزونه امنیتی یا تنظیمات سرور باعث آن شده باشد.

1. صفحه را دوباره بارگذاری و دوباره وارد وردپرس شوید

صفحه را مجددا بارگذاری کنید
اگر نشست ورود منقضی شده باشد، دوباره وارد پیشخوان شوید

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

2. حد حافظه PHP را بررسی کنید

افزایش دادن حد حافظه PHP یا PHP Memory Limit
ویرایش فایل wp-config.php از طریق FTP

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

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

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

3. پردازش تصویر را در سلامت سایت بررسی کنید

تنظیم ویرایشگر عکس
ویرایش فایل .htaccess برای بررسی تنظیمات پردازش تصویر

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

CA چیست؟ آشنایی با Certificate Authority

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

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

4. روش معمول آپلود رسانه را دوباره امتحان کنید

بارگذاری فایل‌های تصاویر در مرورگر
صفحه افزودن پرونده رسانه در وردپرس

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

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

5. افزونه‌ها را موقتاً غیرفعال کنید

پلاگین‌ها را غیر فعال کنید
غیرفعال کردن افزونه‌ها برای عیب‌یابی

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

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

6. قالب را موقتاً تغییر دهید

قالب وردپرس را تغییر دهید
استفاده موقت از یک قالب پیش‌فرض برای بررسی تداخل

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

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

7. کش مرورگر و کش سایت را پاک کنید

آیا از یک پلاگین کش استفاده می‌کنید؟
پاک کردن داده‌های کش‌شده مرورگر

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

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

8. نسخه PHP را بررسی کنید

آیا از آخرین نسخه PHP استفاده می‌کنید؟
نمایش نسخه PHP و محدودیت‌های سرور در سلامت سایت

برای سایت‌های وردپرسی، بهتر است از نسخه‌های پشتیبانی‌شده و جدید PHP استفاده کنید. WordPress.org در حال حاضر استفاده از PHP 8.3 یا بالاتر را توصیه می‌کند. PHP 7.4 به پایان عمر رسمی رسیده است و برای سایت جدید انتخاب مناسبی نیست.

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

اگر تصاویر آپلود می‌شوند اما بندانگشتی‌ها ساخته نمی‌شوند چه کنیم؟

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

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

چه زمانی باید با پشتیبانی هاست تماس بگیریم؟

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

  • چه فایل و چه حجمی را آپلود می‌کنید؛
  • پیام خطای دقیق چیست؛
  • آیا مشکل برای همه فایل‌ها رخ می‌دهد یا فقط تصاویر خاص؛
  • مقدار upload_max_filesize و post_max_size چقدر است؛
  • مجوز و مالکیت wp-content/uploads بررسی شود؛
  • گزارش خطای PHP و وب‌سرور در زمان خطا بررسی شود.

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

جمع‌بندی

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

اگر با خطای HTTP روبه‌رو هستید، حافظه PHP، افزونه‌ها، قالب، کش و نسخه PHP را بررسی کنید. کدهای ناشناخته را بدون تشخیص دقیق مشکل به .htaccess اضافه نکنید.

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

سوالات متداول

اول حجم و نام همان فایل را بررسی کنید. اگر تصاویر دیگر بدون مشکل آپلود می‌شوند، معمولاً مشکل از محدودیت حجم، نام فایل یا خود فایل است.
در بسیاری از هاست‌ها مقدار رایج برای پوشه‌ها 755 و برای فایل‌ها 644 است. با این حال مالکیت فایل و پیکربندی سرور اهمیت دارد و بعضی هاست‌ها تنظیم متفاوتی دارند.
خیر. 777 دسترسی بیش از حد ایجاد می‌کند و راه‌حل امنی نیست. اگر 755 جواب نمی‌دهد، مالکیت فایل‌ها و تنظیمات کاربر وب‌سرور باید بررسی شود.
در صفحه افزودن رسانه معمولاً مقدار حداکثر فایل نمایش داده می‌شود. همچنین از بخش سلامت سایت می‌توانید محدودیت واقعی upload_max_filesize و post_max_size را ببینید.
WordPress.org در حال حاضر PHP 8.3 یا بالاتر را توصیه می‌کند. PHP 7.4 حداقل نسخه پشتیبانی‌شده برای وردپرس جدید است، اما به پایان عمر رسمی رسیده است.
این خطا می‌تواند از کمبود حافظه، مشکل پردازش تصویر، افزونه امنیتی، اختلال ارتباط یا محدودیت سرور ایجاد شود. به همین دلیل باید مرحله‌به‌مرحله موارد مقاله را بررسی کنید.
آیا این مقاله برای شما مفید بود؟
تقریبا
خیر

دیدگاهتان را بنویسید

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