varios renombrar para mover masivo eliminar directorio copiar comando archivos archivo php mysql file-upload file-rename

php - para - ¿Cómo renombrar el archivo cargado antes de guardarlo en un directorio?



renombrar directorio linux (3)

A continuación se muestra el código que utilicé para cargar archivos en un directorio. Funciona bien. Mi pregunta principal es:

move_uploaded_file () es el que guarda el archivo cargado en el directorio, y también creo que move_uploaded_file () es el que le asigna el nombre.

¿Cómo podría cambiar el nombre de mi archivo a un número aleatorio?

He intentado hacerlo a continuación:

$allowedExts = array("gif", "jpeg", "jpg", "png"); $temp = explode(".", $_FILES["file"]["name"]); $extension = end($temp); if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/pjpeg") || ($_FILES["file"]["type"] == "image/x-png") || ($_FILES["file"]["type"] == "image/png")) && ($_FILES["file"]["size"] < 100000) && in_array($extension, $allowedExts)) { if ($_FILES["file"]["error"] > 0) { echo "Return Code: " . $_FILES["file"]["error"] . "<br>"; } else { $fileName = $temp[0].".".$temp[1]; $temp[0] = rand(0, 3000); //Set to random number $fileName; if (file_exists("../img/imageDirectory/" . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " already exists. "; } else { move_uploaded_file($_FILES["file"]["tmp_name"], "../img/imageDirectory/" . $_FILES["file"]["name"]); echo "Stored in: " . "../img/imageDirectory/" . $_FILES["file"]["name"]; } } } else { echo "Invalid file"; }

Traté de cambiar variables como $ _FILES ["file"] ["name"] y reemplazarlas con $ fileName; variable para que el nuevo nombre pueda ser almacenado.


Adivinas correctamente. Lea la página del manual para move_uploaded_file . Establezca el segundo parámetro donde desee guardar el archivo.

Si no funciona, hay algo mal con su $fileName . Por favor publique su código más reciente.


Puedes probar esto,

$newfilename= date(''dmYHis'').str_replace(" ", "", basename($_FILES["file"]["name"])); move_uploaded_file($_FILES["file"]["tmp_name"], "../img/imageDirectory/" . $newfilename);


Simplemente puede cambiar el nombre del archivo cambiando el nombre del archivo en el segundo parámetro de move_uploaded_file .

En lugar de

move_uploaded_file($_FILES["file"]["tmp_name"], "../img/imageDirectory/" . $_FILES["file"]["name"]);

Utilizar

$temp = explode(".", $_FILES["file"]["name"]); $newfilename = round(microtime(true)) . ''.'' . end($temp); move_uploaded_file($_FILES["file"]["tmp_name"], "../img/imageDirectory/" . $newfilename);

Modificado para reflejar su pregunta, producirá un número aleatorio basado en la hora actual y agregará la extensión desde el archivo originalmente cargado.