Most image upload failures in WordPress trace back to a small set of server-side limits and missing components. Work through the checks below in order.
WordPress enforces two PHP settings when accepting an uploaded file. If either is too low, the upload silently fails or returns a generic error.
upload_max_filesize. Recommended value: 64M or higher.Edit your php.ini file (or a .htaccess / user.ini override if your host requires it) and set both values:
upload_max_filesize = 32M post_max_size = 64M
Restart your web server after making changes. If you do not have access to php.ini, contact your hosting provider and ask them to raise these limits.
Resizing a large image at upload time requires available PHP memory. If WordPress runs out of memory mid-upload, the process terminates and the image is not saved.
memory_limit = 256M
FW Real Estate generates multiple thumbnail sizes from each uploaded photo. High-resolution source images need proportionally more memory, so if you accept large photos consider setting this to 512M.
FW Real Estate uses the PHP GD extension to resize images on upload. If GD is not installed or not enabled, thumbnail generation fails entirely — uploads may appear to succeed but no resized copies are created, or the upload fails with an error.
To check whether GD is available, ask your hosting provider, or create a temporary file containing <?php phpinfo(); ?> and look for a GD section in the output. If GD is absent, ask your host to enable the php-gd package for your PHP version.
WordPress writes uploaded files to wp-content/uploads/. If the web server process does not have write permission on that directory, every upload will fail.
Correct permissions for the uploads folder and its subdirectories are 755 (owner can write; group and others can read and execute). Files inside should be 644. Set these via your hosting control panel, an FTP client, or the command line:
find wp-content/uploads -type d -exec chmod 755 {} \;
find wp-content/uploads -type f -exec chmod 644 {} \;
Avoid setting permissions to 777. That removes write protection from all users and is a security risk.
upload_max_filesize)After adjusting any of these values, attempt a test upload. If uploads still fail, check the WordPress debug log (wp-content/debug.log) and your server error log for a specific error message that can narrow the cause further.