Fixing errors when uploading images in WordPress

HTTP error When Uploading Image

This happens when you are trying to upload an image that is large in pixel size, for example an image with 3000 x 2000 pixel. Which is too large for your server to process.
Some server shows error even when your image is less than 3000 x 2000 pixel, it all depends on your server resources.

HTTP error.

Solutions

The following are some solutions available to fix your HTTP error issue in WordPress.

Decrease your image size before uploading. 

  • If you are using a Mac, you can use the Preview App to reduce the size of your image. 
  • For a PC you can use the Paint Application. 
  • In Customizr and Customizr Pro theme, the boxed slider image size is 1170px x 500px, therefore you can reduce your image around that size before uploading. 
  • Reduce image size by trial and error until you are able to upload it without any error.

Increase PHP Memory

  • Contact your web hosting company and ask them to increase your PHP memory limit. Increase gradually until you are able to upload an image size which is acceptable by you. At least around width of 2000px.
  • If you prefer to do it yourself, you can add the following in your wp-config.php. This will only work if your hosting package has that amount of memory. Increase gradually until you are able to upload an image size which is acceptable by you.

    define( 'WP_MEMORY_LIMIT', '256M' );
    	
  • You can also try increasing your memory by adding the following in your .htaccess file. This will only work if your hosting package has that amount of memory. Increase gradually until you are able to upload an image size which is acceptable by you.
    Note: Some web hosting does not allow this and you will have a 500 internal server error. In this case you will have to remove this code.

    php_value memory_limit 256M
    	
  • If you have access to your web server's php.ini file, you can find the memory_limit and increase it's size. This will only work if your hosting package has that amount of memory. Increase gradually until you are able to upload an image size which is acceptable by you.

    memory_limit = 256M
    	

ModSecurity

  • Your server may have mod_security, and it might be causing problems.
    Disable it to see if that is the problem.
    To do this, make an .htaccess file in your wp-admin directory.
    Add the following code to it:

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

    That will disable mod_security for the upload file receiving code in the wp-admin.
    Note: Remove this if it's causing any error on your server.

Access Control based on Authentication

  • If you're using Access Control based on Authentication on your Webserver (often known as htpasswd, Basic Authentiaction, password protected directory or similar), WordPress is not able to handle it for Flash Uploader, Cron and XMLRPC. Related files need to be excluded to work. At the following in your .htaccess file at your WordPress root folder.

    # Exclude the file upload and WP CRON scripts from authentication
    <FilesMatch "(async-upload\.php|wp-cron\.php|xmlrpc\.php)$">
        Satisfy Any
        Order allow,deny
        Allow from all
        Deny from none
    </FilesMatch>
    	

Plugin conflict

  • You may have installed a plugin that's causing this issue. Please proceed to disable one plugin at a time. Clear your cache and browser history and revisit media uploader to upload your image ( keep the pixel size small ) and see if you are successful.

Unable to create directory and broken images in the Media Library

If you are unable to see the thumbnails in your media library, and you are encountering the following error while uploading an image.

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

This happens when your wp-content/uploads folder's permission has been changed. This could happen when you accidentally changed it's permission or your web hosting technician might be doing some maintenance work and accidentally reset it's folder permission.

Solution

  • Login to your server by using your favorite FTP program. (how to use a FTP software with WordPress ? )
  • Navigate to wp-content/uploads/
  • Use your FTP program to change the uploads folder permission to 755, apply to all enclosed items.
    This will make sure all items and folders within your uploads folder is set to 755.
  • Clear your browser cache. 
  • Login to WordPress and visit your Media Library, you should be seeing all thumbnails of your uploaded image.
  • You should be able to upload an image without seeing the unable to create directory error.

File exceeds the upload_max_filesize

This happens when your PHP Upload Max Filesize (upload_max_filesize) set in your php.ini file, is smaller than the file size of the image that you are trying to upload.

Look into your System Informations for the value of PHP Upload Max Filesize, you will need to increase it to a higher and healthier value.

..exceeds the maximum upload size for this site.

Solutions

The following are some solutions available to fix your exceeded upload max filesize issue in WordPress.

Contact your Hosting Company

Yes, this is the most prefer way. Contact your hosting company and show them a screenshot of your error or write to them the error message. Ask them to assist in increasing the following values, until you are able to upload your image. Your hosting company may have restrictions on these values.

upload_max_filesize 
post_max_size 
max_execution_time 
max_input_time
Preferably to the following values.
upload_max_filesize 64M 
post_max_size 64M 
max_execution_time 300 
max_input_time 300

Editing php.ini File

The php.ini file is the default PHP configuration file. Most of the Shared Hosting Company does not allow access to this file. If you are certain that you have access to php.ini file on your server, you may proceed with the following steps.

  1. Access it using your FTP program. ( how to use a FTP software with WordPress ? )
  2. Backup a copy of this file before attempting to edit it.
  3. Open it and find the following values, one at a time (They are located at different lines within the file)
    upload_max_filesize 
    post_max_size 
    max_execution_time 
    max_input_time
    	
  4. Preferably, edit them to the following values.
    upload_max_filesize 64M 
    post_max_size 64M 
    max_execution_time 300 
    max_input_time 300
    	

Using .htaccess file

In WordPress, there is a .htaccess file. WordPress uses this file to manipulate how Apache (server) serves files from its root directory, and subdirectories. Therefore, this file is very important. Do not edit what's originally written in this file. You can add some directives at the end of the file to increase the PHP Upload Max Filesize.  Learn more about the htaccess file in WordPress here.

  1. Use your favorite FTP program to access your WordPress installation.
  2. Go to the root directory, it's the directory where you can find your wp-config.php file. You should be able to find your .htaccess file.
  3. Download a copy of it onto your computer to save as backup.
  4. Open it and added the following into a newline at the end of the file.
    php_value upload_max_filesize 64M 
    php_value post_max_size 64M 
    php_value max_execution_time 300 
    php_value max_input_time 300
    	
  5. Save your changes and overwrite the .htaccess file on your server.
  6. Go back to your System Informations and check if your values have changed.
    If not, you should contact your hosting company for assistance in editing these values in your php.ini file.

External Resources

  1. How to Fix HTTP error when uploading images (wordpress.stackexchange.com)
  2. HTTP Error on Media Upload (wp.org)
  3. Media Uploader Problems (wp.org)

Written by Denzel Chia