2016-10-30 101 views
0

我想更改上傳文件的名稱,例如,如果我選擇上傳文件「image.png」,我想在上傳時將其重命名爲「face.png」。PHP文件上傳更改文件名保留分機

我有一個php圖像上傳表單,但它保留文件的當前名稱並上傳它,我現在想要一個變量名$ custom_name,我可以編輯內容,這是文件的新名稱。

PHP上傳表單:

if(isset($_FILES['image'])){ 
    $errors= array(); 

    $custom_name = ""; // THIS IS WHERE I WANT TO INSERT NEW NAME 

    $file_name = $_FILES['image']['name']; 
    $file_size =$_FILES['image']['size']; 
    $file_tmp =$_FILES['image']['tmp_name']; 
    $file_type=$_FILES['image']['type']; 
    $file_ext=strtolower(end(explode('.',$_FILES['image']['name']))); 

    $expensions= array("png"); 

    if(in_array($file_ext,$expensions)=== false){ 
    $errors[]='Only PNG files'; 
    echo "Only PNG files"; 
    } 

    if($file_size > 2097152){ 
    $errors[]='Larger than 2MB'; 
    echo "Larger than 2MB"; 
    } 

    if(empty($errors)==true){ 
    move_uploaded_file($file_tmp,"images/quads/".$file_name); 
    echo "Success"; 
    }else{ 
    } 
} 

我試圖拼接但只是不知道在哪裏放置$ CUSTOM_NAME變量。

三江源非常多的幫助

+0

你知道代碼的每個部分是做什麼的嗎?你的問題究竟在哪裏? – Dekel

+0

@Dekel嗨,代碼來自一個在線教程,我花了一個小時閱讀關於PHP文件上傳,並相信我需要改變這個$ file_name = $ custom_name。 $ _FILES [ '圖像] [' 名稱'];然而這沒有工作 – Bradley

回答

1

既然你說你已經嘗試過(它看起來像你真的有),這裏是一個解釋:

當您上傳的PHP文件,原始文件名爲$_FILES['image']['name']。在您的代碼中,您將此值設置爲變量$file_name
您已在$file_ext中擁有該文件的擴展名,因此您可以使用它。

如果你在$custom_name變量的特定字符串,你可以使用:

$file_name = $custom_name . $file_ext; 

move_uploaded_file第二個參數是要創建新文件的路徑(在你的例子是"images/quads/".$file_name )。如果變量$file_name將包含$custom_name$file_ext - 您將得到您想要的。

+0

我感謝你的幫助,非常感謝 – Bradley

+0

不客氣:)不要忘記接受/投票答案,如果它是正確的。 – Dekel

+0

@Bradley,謝謝你接受答案。如果您也可以投票(將數字1以上的向上箭頭),將會感激。謝謝! – Dekel