WordPress Error: The Uploaded File Could Not Be Moved

WordPress | Updated March 2026

The "uploaded file could not be moved to" error in WordPress occurs after a file uploads successfully to the temp directory but can't be moved to its final location in wp-content/uploads/. The root cause is almost always a file permission or ownership problem on the uploads directory.

Quick Fix

Fix permissions on the uploads directory via SSH: chmod -R 755 ~/public_html/wp-content/uploads/ and ensure ownership is correct: chown -R username:username ~/public_html/wp-content/uploads/. Replace username with your cPanel username.

01. What Causes This Error

WordPress uploads happen in two stages. First, PHP writes the file to a temporary directory. Second, WordPress moves it from temp to the final location in wp-content/uploads/YYYY/MM/. This error means stage one succeeded but stage two failed.

The most common reasons:

Permissions too restrictive - The uploads directory or a year/month subdirectory has permissions set to 700 or lower, preventing the web server from writing.

Wrong ownership - Files restored from a backup or transferred from another server may be owned by a different user. The web server can't write to directories owned by another account.

Disk quota reached - The cPanel account has hit its disk space or inode limit.

02. Fixing Permissions

# Set directories to 755 and files to 644 recursively
find ~/public_html/wp-content/uploads/ -type d -exec chmod 755 {} \;
find ~/public_html/wp-content/uploads/ -type f -exec chmod 644 {} \;

Or through cPanel's File Manager: navigate to wp-content/uploads/, right-click, select "Change Permissions," set to 755, and check "Recurse into subdirectories" if available.

03. Fixing Ownership

# Fix ownership to your cPanel user
chown -R username:username ~/public_html/wp-content/uploads/

If you don't have SSH access, you can fix ownership through File Manager by creating a new folder, which will automatically have the correct ownership, and then moving your files into it.

04. Check Disk Space

If permissions and ownership look correct, check whether your account has hit its disk or inode limit:

# Check disk usage vs quota
quota -s

# Check inode count
df -i ~

If you're at or near your limit, you'll need to free up space before uploads will work again. See our disk space management guide for tips on cleaning up.

For the related "Unable to create directory" error, see our uploads directory guide. For the "Missing a temporary folder" error, see our temporary folder guide.

Uploads Still Failing?

If permissions, ownership, and disk space all look correct, open a support ticket. There may be a PHP open_basedir restriction or ModSecurity rule interfering with the upload.

Open a Support Ticket

Quick Recap: File Could Not Be Moved

  1. Set directory permissions to 755 - All directories under wp-content/uploads/
  2. Set file permissions to 644 - All files under wp-content/uploads/
  3. Fix ownership - Must be owned by your cPanel username
  4. Check disk quota - Make sure you haven't hit your space or inode limit
  5. Contact support - If all of the above checks out, there may be a server-side restriction

Last updated March 2026 · Browse all WordPress articles

  • 2 Users Found This Useful

Was this answer helpful?

Related Articles

WordPress Error : Sorry, this file type is not permitted for security reasons

WordPress | Updated March 2026 The "Sorry, this file type is not permitted for security...

WordPress error "This file cannot be imported - It may be caused by file_uploads being disabled in your php ini"

WordPress | Updated March 2026 The "This file cannot be imported" error in WordPress appears...

How to Fix a Hacked WordPress Site

WordPress Security | Updated 2026 If your WordPress site has been hacked, defaced, or is...

AccelerateWP: Speed Up Your WordPress Site

WordPress | Updated March 2026 AccelerateWP is a WordPress optimization tool built into your...

Not Receiving Form Email Through WordPress - SMTP

WordPress | Updated March 2026 If your WordPress contact forms aren't sending email, the...



Save 30% on web hosting - Use coupon code Hosting30