php - 如果没有上传文件,则停止 file_exist 调用错误
问题描述
当用户没有选择将文件作为表单的一部分上传时,是否有一种简单的方法可以阻止 file_exists 返回 true?
我有以下代码;
if (isset($_FILES["tipimage"]) && $_FILES["tipimage"]["error"] == 0) {
$allowed = array("jpg" => "image/jpg", "jpeg" => "image/jpeg", "gif" => "image/gif", "png" => "image/png");
$filename = $_FILES["tipimage"]["name"];
$filetype = $_FILES["tipimage"]["type"];
$targetDir = "uploads/";
$targetFilePath = $targetDir . $filename;
// Verify file extension
$ext = pathinfo($filename, PATHINFO_EXTENSION);
if(!array_key_exists($ext, $allowed)) {
$error .= "Invalid File Format<br>";
}
}
if (file_exists("uploads/" . $_FILES["tipimage"]["name"])) {
$error .= "The File " . $_FILES["tipimage"]["name"] . " already exists.<br>";
} else if (move_uploaded_file($_FILES["tipimage"]["tmp_name"], $targetFilePath)) {
$successmsg .= "<div class='alert alert-success'>Image - " . $filename . " - Uploaded Successfully!</div>";
}
解决方案
我不确定您的else
状况,因为您使用了if
和else if
。如果可能的话,我会选择多个以避免错误。
// Check if the file exists
if(file_exists("uploads/" . $_FILES["tipimage"]["name"])){
$error .= "The File " . $_FILES["tipimage"]["name"] . " already exists.<br>";
}
// Upload file
if(!move_uploaded_file($_FILES["tipimage"]["tmp_name"], 'uploads/' . $_FILES["file_upload"]["name"])){
die('Error uploading file - check destination is writeable.');
}
$successmsg .= "<div class='alert alert-success'>Image - " . $filename . " - Uploaded Successfully!</div>";
// Check for errors
if($_FILES["file_upload"]["error"] > 0){
die('An error ocurred when uploading.');
}
推荐阅读
- python - 在python中附加到二维列表时出现问题
- c++ - client.subscribe() 需要很长时间(30-45 秒)来接收消息
- c++ - 没有 Rcpp 的服务器上的 Rshiny 网络图
- python - 避免在另一个方法中多次调用方法?
- python-3.x - 为什么我的 Python 程序停止工作并开始使用 100% CPU?
- angular - 有没有办法与 redux-observable 同步调度动作?
- linux-kernel - 图形:帧缓冲区可以分配在内存中的任何位置吗?
- html - 让 SVG 充当块元素
- python - 在 pandas eval 中调用 round()、ceiling()、floor()、min()、max()
- c++ - 关于 const 引用和临时对象的问题