代码之家  ›  专栏  ›  技术社区  ›  Paul

如何在未上载文件时绕过文件上载脚本

  •  0
  • Paul  · 技术社区  · 6 年前

    我有一个表单,可以发送文本输入,有时还可以发送文件。我有一个问题的情况下,文件没有被上传。当前,如果表单提交中未包含文件,则会出现以下错误:

    php注意:未定义的索引: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;
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Mike Volmar    6 年前

    您可以使用empty检查是否有文件附件

    if (!empty($_FILES["uploadedFile"]["name"])) {
    

    如果未找到任何内容(如ISSET或COUNT),则EMPTY不会生成通知或警告