Re: move_uploaded_file

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

 



On Sat, 2009-12-12 at 11:49 +0000, Roberto Aloi wrote:

> This is exactly what I mean.
> Documentation should never leave room to interpretation.
> At least, this is what I think.
> 
> Roberto Aloi
> 
> On 11 Dec 2009, at 22:36, Ashley Sheridan <ash@xxxxxxxxxxxxxxxxxxxx>  
> wrote:
> 
> > On Fri, 2009-12-11 at 22:14 +0000, Roberto wrote:
> >>
> >> Hi Joseph,
> >>
> >> I'm perfectly fine with the concepts of absolute/relative path and
> >> webroot, trust me.
> >> For me it was just unclear from the documentation the fact that the
> >> "target path" in the move_uploaded_file function was "absolute" with
> >> respect to the file system and not to the "webroot".
> >> At the beginning I thought the function itself was taking care about
> >> adding the server root on its own to that path.
> >> Thinking carefully, it makes perfectly sense for the function to
> >> behave the way it actually does, since otherwise it would be
> >> impossible to get these files out of the server root in file system
> >> terms.
> >> Just, this should be written in CAPITAL LETTERS in the documentation.
> >> Thanks for the interest,
> >>
> >> Roberto Aloi
> >> http://aloiroberto.wordpress.com
> >> Twitter: @prof3ta
> >>
> >> > 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
> >> >>
> >> >>
> >> >
> >>
> >
> > I've never had any issue with the documentation for this function. I  
> > think it might just be an issue with interpretation? :p
> >
> > Thanks,
> > Ash
> > http://www.ashleysheridan.co.uk
> >
> >


I can't see where you would find fault with the documentation though, as
all the PHP file functions require either an absolute path from the root
(not web root) or a relative one from the script performing the action.

Thanks,
Ash
http://www.ashleysheridan.co.uk



[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