我有两个文件(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']'非零代码,这表明失败。 –
谢谢,马克。将研究它。 –