Re: move_uploaded_file

From: Date: Fri, 11 Dec 2009 19:45:49 +0000
Subject: Re: move_uploaded_file
References: 1 2 3  Groups: php.general 
Request: Send a blank email to php-general+get-300394@lists.php.net to get a copy of this message
When used in PHP, an absolute path does not go off the web root. In Premise 3 below, an absolute path of "/upload" will NOT bring up the directory "/home/prof3ta/projects/moodle/htdocs/upload" but rather simply "/upload" In Windows terms, an absolute path would be "C:\upload" versus "C:\home\prof3ta\projects\moodle\htdocs\upload". The only time an absolute path is figured relative to the web root is when it is referenced in a browser. At this point, for all intents and purposes, it locates the file based on the web root. This is a fundamental difference between absolute and relative paths. Absolute: begins at "/" in Linux operating systems and "C:\" in Windows OS Relative: begins wherever the running script is located in the file system. Joseph Roberto wrote:
HI, Premise 1: echo exec("pwd"); -> "/home/prof3ta/projects/moodle/htdocs/feedback_tool" Premise 2: I have an "upload" folder with 777 permissions under: /home/prof3ta/projects/moodle/htdocs/upload Premise 3: The server root is obviously htdocs: /home/prof3ta/projects/moodle/htdocs This said, the following doesn't work: <?php $uploads_dir = "/upload"; $tmp_name = $_FILES["file"]["tmp_name"]; $name = $_FILES["file"]["name"]; move_uploaded_file($tmp_name, "$uploads_dir/$name"); ?> The following does work: <?php $uploads_dir = "../upload"; $tmp_name = $_FILES["file"]["tmp_name"]; $name = $_FILES["file"]["name"]; move_uploaded_file($tmp_name, "$uploads_dir/$name"); ?> I consider it as a documentation bug (in the sample code they use an absolute path). I indeed believe I *should* be able to use both of them if not documented otherwise. I will dig into the C implementation of the move_uploaded_file function and I'll check, though. Cheers, Roberto Aloi http://aloiroberto.wordpress.com Twitter: @prof3ta


« previous php.general (#300394) next »