cs1h Posted September 11, 2007 Share Posted September 11, 2007 Hi, I am trying to assign a random name to pictures when they are uploaded, my aatempts have not worked because they are renamed but loose the type of file that they are, and I cannot reference the new name to my database. My code is, <?php //This is the directory where images will be saved $target = "images/"; $target = $target . basename( $_FILES['photo']['name']); //This gets all the other information from the form $name=$_POST['name']; $country=$_POST['menuFilesDMA']; $type=$_POST['Catagory']; $Email=$_POST['Email']; $Title=$_POST['title']; $Abstract=$_POST['message']; $Article=$_POST['messagetwo']; $pic=($_FILES['photo']['name']); // Connects to your Database mysql_connect("localhost", "black", "adder") or die(mysql_error()) ; mysql_select_db("baldrick") or die(mysql_error()) ; //Writes the information to the database mysql_query($sql = "insert into `items` (`name`, `country`, `type`, `Email`, `Title`, `Abstract`, `Article`, `photo`) values ('$name', '$country', '$type', '$Email', '$Title', '$Abstract', '$Article', '$pic')"); //Writes the photo to the server if(move_uploaded_file($_FILES['photo']['tmp_name'], $target)) { //Tells you if its all ok echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory"; } else { //Gives and error if its not echo "Sorry, there was a problem uploading your file."; } ?> Any help on how to do this would be much appriciated. Thanks Colin Quote Link to comment https://forums.phpfreaks.com/topic/68845-renaming-files/ Share on other sites More sharing options...
xyn Posted September 11, 2007 Share Posted September 11, 2007 <?php function tend_this_file($name, $ext=false) { if($ext) { # # Extention is required; do not return the name # of the tending file. # return substr(basename($name), -4); } else { # # Extention wanted removed; so return the extention # return substr(basename($name), 0, -4); } } //This is the directory where images will be saved $target = "images/"; $target = $target . basename( $_FILES['photo']['name']); //This gets all the other information from the form $name=$_POST['name']; $country=$_POST['menuFilesDMA']; $type=$_POST['Catagory']; $Email=$_POST['Email']; $Title=$_POST['title']; $Abstract=$_POST['message']; $Article=$_POST['messagetwo']; $pic=($_FILES['photo']['name']); // Connects to your Database mysql_connect("localhost", "black", "adder") or die(mysql_error()) ; mysql_select_db("baldrick") or die(mysql_error()) ; //Writes the information to the database mysql_query($sql = "insert into `items` (`name`, `country`, `type`, `Email`, `Title`, `Abstract`, `Article`, `photo`) values ('$name', '$country', '$type', '$Email', '$Title', '$Abstract', '$Article', '$pic')"); //Writes the photo to the server $newname = md5(mktime()*rand()); if(move_uploaded_file($_FILES['photo']['tmp_name'], $target.$newname.".".tend_this_file($_FILES['photo']['name'], 1))) { //Tells you if its all ok echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory"; } else { //Gives and error if its not echo "Sorry, there was a problem uploading your file."; } ?> Quote Link to comment https://forums.phpfreaks.com/topic/68845-renaming-files/#findComment-346043 Share on other sites More sharing options...
cs1h Posted September 11, 2007 Author Share Posted September 11, 2007 Thanks, that works to rename the file but the original name still goes up onto the database, also is there a way of removing the spaces in the name as well. Cheers Colin Quote Link to comment https://forums.phpfreaks.com/topic/68845-renaming-files/#findComment-346056 Share on other sites More sharing options...
xyn Posted September 11, 2007 Share Posted September 11, 2007 trim() <= removes spaces. and add: $new_file_name = $newname.".".tend_this_file($_FILES['photo']['name'], 1); insert the var into mysql? Quote Link to comment https://forums.phpfreaks.com/topic/68845-renaming-files/#findComment-346059 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.