我有一个允许用户将文件上传到文件夹的网站。首先,我检查文件是否存在,如果存在,则检查复选框的值以确定用户是否要覆盖现有文件。如果上传被击中并且未选中该框,我会执行一个有消息和后退按钮的die()。但是,当我回击时,选中复选框(文件仍然显示为已选中),然后再次提交,它不会覆盖该文件(但似乎没有死掉)。当我回击或其他什么时,复选框值是不是被改变或重置了?
也许值得一提的是,有一个表单(if method = post)和一个表单(else)但它们完全相同。
有人可以帮帮我吗?感谢。
这是我的代码:
表格:
<form id='upload' method='post' enctype='multipart/form-data' action='<?php $_server['PHP_SELF']; ?>'>
<input type='file' name='file_upload'>
<br><br>
<label><input type="checkbox" id="overwrite" name="overwrite" value="Yes"> Overwrite file (if file exists)</label>
<br><br>
<input type='submit' value="Upload">
</form>
休息:
if(file_exists($fullFileName)){
$confirmation = $_POST["overwrite"];
if($confirmation == "Yes") {
unlink($fullFileName); //overwrite confirmed, unlink old file
}
else {
die("Upload aborted. Please check 'Overwrite file (if file exists)' box to overwrite existing file <input type='submit' href='#' onclick='history.back();' value='Back'>");
}
}
if(!move_uploaded_file($_FILES['file_upload']['tmp_name'], '' . $_FILES['file_upload']['name'])){ //move new file into place
die('Errrrrr! Error uploading file - check destination is writeable.');
}
答案 0 :(得分:1)
而不是die(),你可以只做一个PHP头重定向,它基本上可以清除表格&#34;并将是一个新的页面加载。如果要保留所选文件,可以将其作为GET值传回。