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

 

دلایل ایجاد خطای Failed to write file to disk

این خطا معمولاً به یکی از موارد زیر مربوط می‌شود:

سطح دسترسی (Permission) نادرست پوشه‌ها

مشکل مالکیت فایل‌ها (File Owner)

پر بودن فضای هاست

تنظیم نبودن مسیر موقت PHP

محدودیت‌های PHP یا غیرفعال بودن آپلود فایل

 

روش اول: بررسی فضای خالی هاست

ابتدا وارد کنترل‌پنل هاست (cPanel یا DirectAdmin) شوید و میزان فضای مصرف‌شده را بررسی کنید.
در صورت پر بودن فضای هاست، وردپرس امکان ذخیره فایل جدید را نخواهد داشت.

 

روش دوم: تنظیم صحیح دسترسی پوشه uploads

اکثر مواقع این خطا به دلیل دسترسی نادرست پوشه uploads رخ می‌دهد.

مسیر پوشه: public_html/wp-content/uploads

دسترسی پیشنهادی:

پوشه‌ها: 755

فایل‌ها: 644

پس از اعمال این تنظیمات، مجدداً عملیات آپلود را تست کنید.

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

 

روش سوم: اصلاح مالکیت فایل‌ها (مخصوص VPS و سرور اختصاصی)

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

با اتصال به SSH این دستور را اجرا کنید:

chown -R USERNAME:USERNAME public_html/wp-content/uploads

به‌جای USERNAME نام کاربری هاست را وارد کنید.

این روش در بسیاری از موارد مشکل را به‌طور کامل برطرف می‌کند.

 

روش چهارم: تنظیم پوشه موقت وردپرس (WP_TEMP_DIR)

گاهی وردپرس مسیر موقت برای ذخیره فایل‌ها ندارد یا به آن دسترسی ندارد.

فایل wp-config.php را ویرایش کرده و کد زیر را اضافه کنید:

define('WP_TEMP_DIR', dirname(__FILE__) . '/wp-content/temp/');

سپس داخل wp-content پوشه‌ای با نام temp ایجاد کنید و دسترسی آن را روی 755 قرار دهید

 

روش پنجم: بررسی تنظیمات PHP

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

file_uploads → فعال باشد

upload_tmp_dir → مقداردهی شده باشد

memory_limit → حداقل 128M

post_max_size و upload_max_filesize → متناسب با حجم فایل‌ها تنظیم شده باشد

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

همچنین در صورتی که به دنبال یک روش ساده و بدون کدنویسی هستید، آموزش افزونه Max Upload FileSize برای افزایش حجم آپلود در وردپرس به شما کمک می‌کند تنها با چند کلیک، محدودیت حجم آپلود فایل‌ها را مستقیماً از پیشخوان وردپرس تغییر دهید.

 

جمع‌بندی

خطای Upload: Failed to write file to disk معمولاً به مشکلات سطح دسترسی یا مالکیت فایل‌ها مربوط می‌شود.
در اکثر سایت‌های وردپرسی، با اصلاح Permission پوشه uploads و در صورت نیاز تنظیم مالکیت فایل‌ها، این خطا به‌صورت کامل رفع خواهد شد.