我有一个可以发送文本输入,有时还可以发送文件的表单。我遇到了文件未上传的问题。目前,如果表单提交中未包含文件,我会收到以下错误:
PHP Notice: Undefined index: uploadedFile
该错误与这行代码直接相关:
$file_count = count($_FILES['uploadedFile']['name']);
我知道错误的含义。我的问题是,当文件不是用可转换为 PHP 的 javascript 上传时,我是否可以将文件计数预定义为 0。或者有没有办法在运行 $file_count
之前检查它是否已设置?
但是,整个脚本中出现了更多的情况。我可以在函数声明之后添加一个 if 语句吗?
public function upload() {
$file_count = count($_FILES['uploadedFile']['name']);
$results = [];
for ($i = 0; $i<$file_count; $i++) {
//echo $file['uploadedFile']['name'][$index] . "\n";
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["uploadedFile"]["name"][$i]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
return 0;
// if everything is ok, try to upload file
} else {
if (move_uploaded_file($_FILES["uploadedFile"]["tmp_name"][$i], $target_file)) {
$results[] = basename($_FILES["uploadedFile"]["name"][$i]);
} else {
return 0;
}
}
}
return $results;
最佳答案
您可以使用空来检查是否有文件附件
if (!empty($_FILES["uploadedFile"]["name"])) {
如果没有找到任何内容(例如 isset 或 count),empty 不会生成通知或警告
关于javascript - 文件未上传时如何绕过文件上传脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58530437/