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
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php