【发布时间】:2020-02-20 03:33:57
【问题描述】:
我有一个发送文本输入和有时文件的表单。对于未上传文件的情况,我遇到了问题。目前,如果表单提交中不包含文件,我会收到以下错误:
PHP 注意:未定义索引:uploadFile
错误与这行代码直接相关:
$file_count = count($_FILES['uploadedFile']['name']);
我知道错误在说什么。我的问题是我可以将文件计数预定义为 0,以便文件未以可翻译为 PHP 的 javascript 上传。或者有没有办法在运行$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 ( !isset($_FILES['uploadedFile']['error']) ) { // then you have a file uploaded -
@RiggsFolly 与检查它是否不为空相比,这样做有什么好处吗?
-
isset 如果不存在会抛出警告,使用 !empty
标签: javascript php file file-upload