Are there differences when I use that functions? Why should I use one instead of the other one...
copy()
copies the file - you now have 2 files, and for large files, this can take very longrename()
changes the file's name, which can mean moving it between directories.move_uploaded_file()
is basically the same as rename()
, but it will only work on files that have been uploaded via PHP's upload mechanism. This is a security feature that prevents users from tricking your script into showing them security-relevant data.In the future, I suggest looking up such information in the PHP Manual yourself.
I found this in the manual of move_uploaded_file():
Florian S. in H. an der E. [.de] at 17-Aug-2008 09:02
move_uploaded_file (on my setup) always makes files
0600
(rw- --- ---
) and owned by the user running the webserver (owner AND group). Even though the directory has a sticky bit set to the group permissions! I couldn't find any settings to change this via php.ini or even usingumask()
.I want my regular user on the server to be able to
tar cjf
the directory .. which would fail on files totally owned by the webserver-process-user; thecopy(from, to)
function obeys the sticky-bit though!
so it seems like copy
and rename
do a slightly different work.