2013-03-14 95 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);