servidor - subir archivos php ejemplo
PHP-Mueva un archivo a una carpeta diferente en el servidor (3)
Necesito permitir que los usuarios de mi sitio web eliminen sus imágenes del servidor una vez que las hayan subido si ya no las quieren. Anteriormente estaba usando la función de unlink
en PHP, pero desde entonces me han dicho que esto puede ser bastante arriesgado y un problema de seguridad. (Código anterior a continuación :)
if(unlink($path.''image1.jpg'')){
// deleted
}
En cambio, ahora quiero simplemente mover el archivo a una carpeta diferente. Esto debe poder realizarse mucho tiempo después de que hayan cargado el archivo por primera vez en cualquier momento que inicien sesión en su cuenta. Si tengo la carpeta principal que almacena las imágenes de los usuarios:
user/
y luego dentro de esa una carpeta llamada del que es el destino para poner sus imágenes no deseadas:
user/del/
¿Hay un comando para mover un archivo a una carpeta diferente? Entonces eso dice:
user/image1.jpg
se mueve a / se convierte
user/del/image1.jpg
La función de rename
hace esto
cambiar el nombre de los documentos
rename(''image1.jpg'', ''del/image1.jpg'');
Si desea mantener el archivo existente en el mismo lugar, debe usar copy
copy(''image1.jpg'', ''del/image1.jpg'');
Si desea mover un archivo cargado use move_uploaded_file
, aunque esto es casi lo mismo que rename
esta función, también verifica que el archivo dado sea un archivo que se cargó mediante el POST
, esto evita, por ejemplo, que se mueva un archivo local
$uploads_dir = ''/uploads'';
foreach ($_FILES["pictures"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["pictures"]["tmp_name"][$key];
$name = $_FILES["pictures"]["name"][$key];
move_uploaded_file($tmp_name, "$uploads_dir/$name");
}
}
código snipet de documentos
Si desea mover el archivo en una nueva ruta, mantenga el nombre del archivo original. utilizar esta:
$source_file = ''foo/image.jpg'';
$destination_path = ''bar/'';
rename($source_file, $destination_path . pathinfo($source_file, PATHINFO_BASENAME));
Use la función rename()
rename("user/image1.jpg", "user/del/image1.jpg");