Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP: move_uploaded_file() failed to open stream: No such file or directory

I'm trying to get PHP to move an uploaded file from the tmp directory to somewhere permanent on my webserver. It seems simple enough, but I'm getting this error:

Unable to move 'C:\UniServer\tmp\php3F62.tmp' to 'static/images/slides/1/1.jpg'

Pretty straight-forward, right? It can't find the destination folder.

My question is: How do I reference the desired target directory?

Is the reference relative to the script's position on the server? Or is it relative to the URL? Or the PHP DOCUMENT_ROOT? Or the OS's filesystem? Or something else?

I can't find the answer in the PHP documentation or indeed in any of the similar questions here on SO..

Can anyone help? Thanks.

like image 970
Chuck Le Butt Avatar asked Jun 08 '12 15:06

Chuck Le Butt


2 Answers

A simple way to keep track of the path is just to define the absolute path in your index.php

define ('SITE_ROOT', realpath(dirname(__FILE__)));

Then just use it like:

move_uploaded_file($_FILES['file']['tmp_name'], SITE_ROOT.'/static/images/slides/1/1.jpg');
like image 84
Lawrence Cherone Avatar answered Oct 23 '22 19:10

Lawrence Cherone


I had the same problem with my uploading. See my example and maybe it can help you.

The file that I created is named "uploads".

$uploads_dir = 'uploads/';
$name = $_FILES['userfile']['name'];
if (is_uploaded_file($_FILES['userfile']['tmp_name']))
{       
    //in case you want to move  the file in uploads directory
     move_uploaded_file($_FILES['userfile']['tmp_name'], $uploads_dir.$name);
     echo 'moved file to destination directory';
     exit;
}
like image 4
Elina Avatar answered Oct 23 '22 19:10

Elina