Renaming an image while loading PHP Mysql

Using the following code, can anyone explain to me how I can rename image files to a different name during the upload process?

Here is what I work for.

uploader.php

<?php include($_SERVER['DOCUMENT_ROOT'] . "/connections/dbconnect.php"); $dataType = mysql_real_escape_string($_POST["dataType"]); $title = mysql_real_escape_string($_POST["title"]); $fileName = basename($_FILES["image"]["name"]); $target_path = ($_SERVER['DOCUMENT_ROOT'] . "/images/gallery/".$fileName); if (file_exists($target_path)) { echo "An image with that file name already exists."; } elseif (move_uploaded_file($_FILES["image"]["tmp_name"], $target_path)) { // The file is in the images/gallery folder. Insert record into database by // executing the following query: $sql="INSERT INTO images (data_type, title, file_name)"."VALUES('$dataType','$title','$fileName')"; $retval = mysql_query($sql); echo "The image was successfully uploaded and added to the gallery :) <a href='index.php'>Add another image</a>"; } else { echo "There was an error uploading the file, please try again!"; } ?> 

Then here is my code for uploading the image to the gallery.


 <form enctype="multipart/form-data" action="uploader.php" method="POST"> Category: <select class="text" name="dataType"> <option value="treeremoval" selected="selected">treeremoval</option> <option value="treetrimming" >treetrimming</option> <option value="treebracing" >treebracing</option> <option value="stumpgrinding" >stumpgrinding</option> <option value="firewood" >firewood</option> <option value="cleanup" >cleanup</option> </select><br /> <br /> Caption: <input type="text" name="title"><br /> <br /> Image to upload: <input type="file" name="image"><br /> <br /> <input type="submit" value="Upload"> </form> 

I am very new to using php and mysql, so any help would be appreciated. I have other questions, but I think I should ask one at a time. =)

Thanks!

+4
source share
4 answers

I would try something like this, you would create a unique identifier and add the file extension to it, if that name exists, you will loop until you get one that does not, then move the file.

 <?php include($_SERVER['DOCUMENT_ROOT'] . "/connections/dbconnect.php"); $dataType = mysql_real_escape_string($_POST["dataType"]); $title = mysql_real_escape_string($_POST["title"]); $fileData = pathinfo(basename($_FILES["image"]["name"])); $fileName = uniqid() . '.' . $fileData['extension']; $target_path = ($_SERVER['DOCUMENT_ROOT'] . "/images/gallery/" . $fileName); while(file_exists($target_path)) { $fileName = uniqid() . '.' . $fileData['extension']; $target_path = ($_SERVER['DOCUMENT_ROOT'] . "/images/gallery/" . $fileName); } if (move_uploaded_file($_FILES["image"]["tmp_name"], $target_path)) { // The file is in the images/gallery folder. Insert record into database by // executing the following query: $sql="INSERT INTO images (data_type, title, file_name)"."VALUES('$dataType','$title','$fileName')"; $retval = mysql_query($sql); echo "The image was successfully uploaded and added to the gallery :) <a href='index.php'>Add another image</a>"; } else { echo "There was an error uploading the file, please try again!"; } 

? >

+4
source

You do move_uploaded_file($_FILES["image"]["tmp_name"], $target_path)

Youre $target_path is a $fileName variable

Change the file name from

 $fileName = basename($_FILES["image"]["name"]); 

to

 'myfilename' 
+2
source

Please try this code:

 $sql =mysql_query("select * from table "); $result = mysql_num_rows($sql) +1; $newfilename = rename("$oldfilename", "$newfilename"); 
0
source

I would suggest downloading a secure image format and limiting file size

  //image upload $pro_image = $_FILES['image']['name']; $pro_image_tmp = $_FILES['image']['tmp_name']; $fileType = $_FILES["image"]["type"]; $fileSize = $_FILES["image"]["size"]; $fileErrorMsg = $_FILES["image"]["error"]; $fileName = preg_replace('#[^az.0-9]#i', '', $pro_image); $nwtourimg = explode(".", $fileName); if (!$pro_image_tmp) { // if file not chosen echo "ERROR: Please browse for a file before clicking the upload button."; exit(); } else if($fileSize > 5242880) { // if file size is larger than 5 Megabytes echo "ERROR: Your file was larger than 5 Megabytes in size."; unlink($pro_image_tmp); // Remove the uploaded file from the PHP temp folder exit(); } else if (!preg_match("/.(gif|jpg|png|jpeg)$/i", $fileName) ) { // This condition is only if you wish to allow uploading of specific file types echo "ERROR: Your image was not .gif, .jpg, or .png."; unlink($pro_image_tmp); // Remove the uploaded file from the PHP temp folder exit(); } else if ($fileErrorMsg == 1) { // if file upload error key is equal to 1 echo "ERROR: An error occured while processing the file. Try again."; exit(); } $fileExt = end($nwtourimg); $fileName = time().rand().".".$fileExt; move_uploaded_file("$pro_image_tmp","upload/$fileName"); //image upload end 
0
source

Source: https://habr.com/ru/post/1491001/


All Articles