Page 1 of 1

removing spaces from uploaded files

Posted: Thu Sep 06, 2007 4:37 am
by cs1h
Hi,

I am uploading files from a form and then writing a path to that file in a database but when I retrieve the information the picture doesn't load becuase of the spaces in the file name. Does any one know how I could edit the following php script so that when the file is uploaded it is given a unique id. When I attempted this in the path it would rename the file but not tell it what the file type was or put its link into the database.

Code: Select all

<?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", "adder", "clifford") or die(mysql_error()) ; 
mysql_select_db("real") 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 will be much appriciated,
Thanks
Colin

Posted: Thu Sep 06, 2007 7:26 am
by s.dot
You don't have to use $_FILES['photo']['name'] at all.

In fact, you can call it whatever you want.

Code: Select all

$name = uniqid() . '.jpg';
//or
$name = time() . '.jpg';
//or
$name = time() . substr(md5(microtime(true)), 0, rand(5, 12)) . '.jpg';

move_uploaded_file($_FILES['photo']['tmp_name'], 'images/' . $name);
If you need to know the extension of the image, you can use getimagesize() and use a switch() through index 2 of the resulting array.