2012-09-25 180 views
0

重命名我有一個PHP代碼如下:PHP上傳的文件擴展名爲

$titleA = $_POST["title"]; 

if (in_array($_FILES["file"]["type"], $valid_mime_types)) { 
    $destination = "bannerImages/" . $_FILES["file"]["name"]; 
    move_uploaded_file($_FILES["file"]["tmp_name"], $destination); } 

我想改變與$ titleA變量的文件名。但擴展將是相同的。基本上,文件名將成爲標題所寫的內容。讓我說,原始文件是first.jpeg秒將是second.jpeg。

+1

你有什麼已經嘗試過?你可以張貼你嘗試過的東西的樣品,但不工作? – BenM

回答

2

你好,如果我正確地理解你,你有問題提取擴展信息。你可以隨時使用pathinfo

$extention = pathinfo("first.jpeg ",PATHINFO_EXTENSION); 
$newName = "secound." . $extention ; 
var_dump($newName); 

輸出

string 'secound.jpg' (length=11) 
+0

好吧, 讓我說$ title =「second」; 和我原來的文件是:first.jpg 我想使它second.jpeg。標題變量將由用戶分配。我不打算擴展。只是名字。 –

+0

它與上面展示的廣告相同..只是提醒你如何提取擴展名..它不會改變名稱是你可以切換 – Baba

0

使用move_uploaded_file時,您可以選擇文件名,以便您可以選擇任何您想要的文件。

當您上傳文件時,將其放入具有臨時名稱的臨時目錄中,move_uploaded_file()允許您移動該文件,並且您還需要設置文件的名稱。

1

基本上你需要上傳文件的擴展名,

,你必須先得到擴展,你有文件

$_FILES["file"]["name"] 

字符串位置「strpos()」將得到一個文件

$idx = strpos($_FILES['file']['name'],'.'); 

你必須打通文件擴展名點後點的點支;

$ext = substr($_FILES['file']['name'],$idx); 

,正如你所希望的最後更改文件名,

$file_name = $titleA . $ext;