Re: move_uploaded_file

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux