If you run WordPress on a Windows server, whether in a production setting, or developing with a product such as WAMP or MAMP for Windows, you may run into a really annoying issue where you don’t have permission to view or move an uploaded file.

The cause is PHP. PHP uses a temporary folder to store the file, and then uploads it to WordPress. If you don’t have permissions to use the temporary folder, or if you haven’t specified where that temporary folder should reside, you cannot view or move the file. This can often be discovered when you FTP a site to a live server, and the master images in a WordPress ‘uploads’ fail to transfer. Alternative image sizes/thumbnails usually do transfer correctly.

The fix is to:

  • Change the upload_tmp_dir in php.ini (for your version) to a dedicated temporary folder e.g. c:\temp
  • Then make sure that you have full permissions on that temporary folder. If you create a folder like c:\temp, you should be fine.

You should now have the correct permissions on any files you upload to WordPress. However, if you have already tried to upload files and they have saved with the wrong permissions, you will need to change the permissions on the wp-content/uploads folder. A full guide can be found here: https://www.windowscentral.com/how-take-ownership-files-and-folders-windows-10.

You should now have control back of your files.