php – Diferencias entre copy, rename y move_uploaded_file

¿Hay diferencias cuando uso esas funciones? ¿Por qué debería usar uno en lugar del otro …

  • copy() copia el archivo; ahora tiene 2 archivos, y para archivos grandes, esto puede llevar mucho tiempo.
  • rename() cambia el nombre del archivo, lo que puede significar moverlo entre directorios.
  • move_uploaded_file() es básicamente lo mismo que rename() , pero solo funcionará en los archivos que se cargaron mediante el mecanismo de carga de PHP. Esta es una función de seguridad que evita que los usuarios engañen al script para que les muestre datos relevantes para la seguridad.

En el futuro, sugiero buscar dicha información en el Manual de PHP usted mismo.

Encontré esto en el manual de move_uploaded_file() :

Florian S. en H. an der E. [.de] el 17-Aug-2008 09:02

move_uploaded_file (en mi configuración) siempre crea los archivos 0600 ( rw- --- --- ) y es propiedad del usuario que ejecuta el servidor web (propietario AND group). ¡Aunque el directorio tiene un bit adhesivo establecido en los permisos del grupo! No pude encontrar ninguna configuración para cambiar esto a través de php.ini o incluso usando umask() .

Quiero que mi usuario habitual en el servidor pueda tar cjf el directorio … que fallaría en archivos que pertenecen por completo al usuario del proceso webserver; ¡la función de copy(from, to) obedece al bit adhesivo!

así que parece que copy y rename hacen un trabajo un poco diferente.