Renommer les fichiers téléchargés avant de les enregistrer dans un répertoire
Question :
Dans un PHP existant script pour télécharger des fichiers dans un répertoire, est-il possible de changer le nom du fichier en un nombre aléatoire avant de l'enregistrer ? La fonction move_uploaded_file() semble définir le nom du fichier, mais son comportement actuel n'est pas souhaité.
Réponse :
Pour renommer le fichier téléchargé avec un nombre aléatoire, effectuez un ajustement au deuxième paramètre de la fonction move_uploaded_file(). Au lieu d'utiliser le nom de fichier d'origine, générez un nouveau nom de fichier en utilisant un nombre aléatoire et ajoutez l'extension du fichier.
Modification du code :
// Get the file extension $temp = explode(".", $_FILES["file"]["name"]); $extension = end($temp); // Generate a new file name based on the current time $newfilename = round(microtime(true)) . '.' . $extension; // Save the file with the new file name move_uploaded_file($_FILES["file"]["tmp_name"], "../img/imageDirectory/" . $newfilename);
Explication :
La fonction round(microtime(true)) génère un nombre aléatoire avec une haute précision basée sur l'heure actuelle. L'ajout de l'extension de fichier garantit que le nouveau nom de fichier conserve le type de fichier d'origine. En utilisant $newfilename à la place de $_FILES"file" dans la fonction move_uploaded_file(), le fichier sera enregistré avec le nombre aléatoire renommé comme nom de fichier.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!