Below is the code I used in order to upload files into a directory. It works fine. My main question is:
move_uploaded_file() is the one that saves the uploaded file into the directory, and it is also my guess that move_uploaded_file() is the one that sets the name for it.
How could I change the name of my file to a random number?
I have tried to do so below:
$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"; }
I tried changing variables such as the $_FILES["file"]["name"] and replacing it with the $fileName; variable so that the new name can be stored.
That's where the os. rename() method comes in. The os. rename() method allows you to rename an existing file in Python.
$fName. $i. $ext; } $i++; } return $file; } // check for which action should be taken if file already exist if (file_exists(UPLOAD_DIR . $fileName['name'])) { $updatedFileName = update_file_name($fileName['name']); move_uploaded_file( $fileName['tmp_name'], UPLOAD_DIR.
ya it is possible. You can also do this before uploading the file basename() is enough for extracting name. Show activity on this post. The accepted answer doesn't prevent the file upload, it simply provides a way to get the file name independent of the file contents.
You can simply change the name of the file by changing the name of the file in the second parameter of move_uploaded_file
.
Instead of
move_uploaded_file($_FILES["file"]["tmp_name"], "../img/imageDirectory/" . $_FILES["file"]["name"]);
Use
$temp = explode(".", $_FILES["file"]["name"]); $newfilename = round(microtime(true)) . '.' . end($temp); move_uploaded_file($_FILES["file"]["tmp_name"], "../img/imageDirectory/" . $newfilename);
Changed to reflect your question, will product a random number based on the current time and append the extension from the originally uploaded file.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With