如果文件已存在,我想覆盖该文件。这是我的代码:
的index.php
<form action="check.php" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<button type="submit" value="upload">Upload</button>
</form>
check.php
if(isset($_FILES['file'])) {
$file = $_FILES['file'];
$target_file = 'files/'.basename($_FILES["file"]["name"]);
if (file_exists($target_file)) {
echo "File already exist";
echo "<form action='overwrite.php' method='post'>
<button type='submit'> Overwrite</button>
</form>";
}
}
overwrite.php
move_uploaded_file($_FILES["file"]["tmp_name"], $target_file);
echo "The file is overwritten";
更新:我的问题出错了。现在我改变了它。在check.php上应该只有声明&#34;文件已存在&#34;和一个指向overwrite.php并覆盖文件的按钮。 (没有第二个输入字段)
答案 0 :(得分:1)
再次创建表单时,您需要指定enctype="multipart/form-data"
echo "<form action='overwrite.php' method='post' enctype='multipart/form-data'>
<input type='file' name='file'>
<button type='submit'> Overwrite</button>
</form>";
没有enctype="multipart/form-data"
它不会让你执行文件上传操作
除了该名称不应该是一个值,它应该是静态的,所以你可以使用它
答案 1 :(得分:0)
您正在访问$_FILES["file"]
但是,除非$target_file==="file"
,否则您找不到任何内容。
将文件上传的name
属性从$target_file
更改为file
:
echo "<form action='overwrite.php' method='post'>
<input type='file' name='file'>
<button type='submit'> Overwrite</button>
</form>";