2013-03-14 98 views
-1

我正在开发一个项目,让用户登录并上传网站上的一些图像, 我正在使用php5。 我在这里有一个问题,如果2个不同的用户上传2个具有相同名称的图像到日期库。 我知道,只要他们到达数据库就必须重命名它们,我认为我可以使用当前时间值来做到这一点,但我确实知道实际的代码。 如果任何人能帮助我,我真的很恰当的更改上传图像的名称

+1

StackOverflow上的最后一个ID命名是不是这个问题的适当场所。我们不会为您编写代码。你需要做自己的编码,如果你不确定为什么某些东西不能按预期工作,请在代码中加上一个解释你期望它做什么,以及它实际上在做什么,包括所有的错误信息。参见[关于StackOverflow](http://stackoverflow.com/about)。 – 2013-03-14 01:17:54

+0

发布您的代码至今 – TNK 2013-03-14 01:41:30

回答

1

TMPFILE()会给你在你的临时唯一的文件句柄DIR - 或 - 的tempnam()会给你在你的临时目录唯一的文件名

使用其中一个为上载创建一个唯一的文件以保存,然后您可以根据需要重命名它们。

0

由于您只是需要一个概念来制作一个文件而不会产生任何冲突,因此我想提出以下选项。

选项1:根据需要重命名 将当前用户标识取为变量。

$tempName = $userID . "_" . strtotime(date('Y-m-d H:i:s')) . "_" . mt_rand(); 

选项2:不同的地点 如果你想保持相同的文件名用户上传。然后将文件存储在每个用户的单独目录中。

你可以使用这样的东西。

$dirPath = "path to the user's directory"; 
if(!file_exists($dirPath)) 
mkdir($dirPath,0777); 

当你上传apache时会在临时位置生成文件,所以它不会重复。

+0

Apache? Errrm,tempname是由php使用os生成的。 – frostymarvelous 2013-03-14 02:22:45

1

是最适合你的图片名称发送到一个DATEBASE 比图像与你的约会基地这样

//////connect//////////////// 
include_once ("connect_to_mysql.php"); 

$file = $_FILES['image']['tmp_name']; 
$albumid = $_POST['album_id']; 


$maxfilesize = 8000000; 

if($_FILES['image']['size'] > $maxfilesize) { 
     echo "<br /><br />Your image was too large. Must be 8Mb or less, please<br /><br /> 
     <a href=\"Profilepic.php\">click here</a> to try again"; 
     unlink($_FILES['uploadedfile']['tmp_name']); 
     exit(); 


} if (!isset($file)) 
echo "Please select an Image."; 
else 
{ 

    // Check file size, if too large exit and tell them why 

$image_name = addslashes($_FILES['image']['name']); 
$image_size = getimagesize($_FILES['image']['tmp_name']); 

$album_id = $_POST['album_id']; 

$id = mysql_insert_id(); 

if ($image_size==FALSE) 
echo "That's Not an Image."; 
else 
{ 

if (!$insert = mysql_query("INSERT INTO image 
VALUES('','$userid','$image_name')")) 

echo "Problem Uploading Image Try Again Please"; 
else{ 
$id = mysql_insert_id(); 
//////////take the last inserted id and use as image name///////// 
$file = "uploads/$userid/".$id.""; 

move_uploaded_file($_FILES['image']['tmp_name'], $file);