我有兩個文件(html和php)。用戶上傳html表單中的文件,php文件包含腳本以將文件上傳到服務器上。 它完美的工作,我的問題是當用戶1上傳'wordThing.docx'和用戶2出現並上傳'wordThing.docx'時,用戶1的文件將被覆蓋。如何在PHP中添加輸入文件名的詳細信息
這裏是我的HTML代碼:
<html>
<body>
<form action="upload_file.php" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br />
<label for="yourName">Your name:</label>
<input type="textbox" name="yourName" id="yourName" /><br />
<input type="submit" name="submit" value="Submit"><br />
</form>
</body>
</html>
這是我的PHP腳本:
<?php
$userName=$_POST['yourName'];
$target_path = "uploads/";
$target_path = $target_path . basename($_FILES['uploadedfile']['name']);
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path))
{
echo "The file ". basename($_FILES['uploadedfile']['name']).
" has been uploaded";
}
else
{
echo "There was an error uploading the file, please try again!";
}
?>
我想用戶將進入 'YOURNAME' 文本連接。因此,服務器包含不同的文件名,並且不必重寫。 因此,假設用戶具有不同的名稱,我想知道如何將文件保存在服務器上並附上名稱。例如:用戶1的文件上傳將是'wordThingSusan.docx'
我希望這不是太多的信息。我只是想要清楚準確。 爲了防止有人試圖使用此代碼,您需要在目錄下有一個名爲「uploads」的文件夾才能使用。
您的代碼假定上傳總是成功。 **不是**一個好主意。總是檢查'$ _FILES ['uploadedfile'] ['error']'非零代碼,這表明失敗。 –
謝謝,馬克。將研究它。 –