2011-11-17 40 views
1

我想重命名文件並將其上傳到服務器以及數據庫中。我有一個代碼:PHP如何重命名上傳的文件?

$file = $_FILES['file']; 
list(,$type) = explode('/', $file['type']); 
move_uploaded_file($file['tmp_name'], 'images/'.time().'.'.$type); 
$a = time(); 
$b = ($a.'.'.$type); 

它正在工作,但我不確定它是如何工作的。我如何將此'images/'.time().'.'.$type更改爲我想要的名稱,例如:'images/'myname.time().'.'.$type)所有這些點和引號都正在殺死我!

+1

_ 「!所有這些點和報價都殺了我」 _見[這裏](http://nl.php.net/manual/en/language.types.string.php)和[這裏](HTTP: //php.net/manual/en/language.operators.string.php)。 – CodeCaster

回答

5

如果點是殺了你,改變他們成爲加號(+)。他們有時也會遇到我,因爲在嘗試訪問對象/類的成員或字符串附加操作時,我的頭腦很難理解它是否是點符號。在這裏你的第三個行重新想象:

$newName = 'aDifferentFileName'; 
$finalFilePath = 'images/' + $newName + time() + '.' + $type; 
move_uploaded_file($file['tmp_name'], $finalFilePath); 

很多時候,我會使用便於閱讀的時期串聯望而卻步。

1

move_uploaded_file()需要兩個參數 - 舊名稱和新名稱。第二個是新名稱,所以你可以指定任何你想要的。

該點是PHP中的連接運算符。時間()。'。'。$ type);

手段「取靜態字符串‘圖像/’,就把對端,然後過一段,則變量$類型的內容時()的返回值。

例如,如果時間( )返回「1」和$類型包含「榜樣」,結果將是「圖像/ 1.example」

這將有效地重命名上傳的文件目錄中的圖像1.example/

1
move_uploaded_file($file['tmp_name'], 'images/'.$yourName.time().'.'.$type); 

,如果你想的名字和時間之間的分隔符:

move_uploaded_file($file['tmp_name'], 'images/'.$yourName.'-'.time().'.'.$type); 
1

的點是聯接操作(將字符串連接在一起)。

移動上傳文件看起來像這樣:move_uploaded_file (string $filename , string $destination)

$file name是上傳到臨時目錄的臨時名稱,$string是您將其移動到的目標路徑。

在你的情況,你可以這樣做:

$myname = 'thisismyname'; 
$filename = 'images/' . $myname . time() . '.' . $type; 
move_uploaded_file($file['tmp_name'], $filename); //Move the file 
//Save $filename to the database here