removing spaces from uploaded files

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
cs1h
Forum Newbie
Posts: 13
Joined: Fri Aug 31, 2007 11:39 am

removing spaces from uploaded files

Post 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
User avatar
s.dot
Tranquility In Moderation
Posts: 5001
Joined: Sun Feb 06, 2005 7:18 pm
Location: Indiana

Post 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.
Set Search Time - A google chrome extension. When you search only results from the past year (or set time period) are displayed. Helps tremendously when using new technologies to avoid outdated results.
Post Reply