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

Foreach无效语句仅适用于条件中的一种情况

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

    我有一个表格,允许1到多个文件上传。我只是注意到,在提交多个文件时,会出现一个错误。

    Invalid argument supplied for foreach()

    对于这一行:

    foreach ($filename as $indFile) {

    文件会上载,但由于错误,它会影响文件中的其他区域。

    只有在上传多个文件时才会显示此错误,这有什么错呢?

    foreach ($_FILES as $file) {
        foreach($file['name'] as $key => $value) {
            if (!empty($value)) { //empty string
                if($file['error'][$key] != 4) { //error code is not #4
                    $fu = new fileUpload();
                    $filename = $fu->upload();
                    $out = (count($filename) > 1 ? 'Multiple files were' : 'A file was'). '  uploaded. You can download ' . (count($filename) > 1 ? 'them' : 'the file'). ' from:</ul>';
                    foreach ($filename as $indFile) {
                        $out .= "<li><a href='uploads/{$indFile}'>{$indFile}</a></li>";
                    }
                    $out .= '</ul>';
                    $template = str_replace("{filename}", $out, $template);
    
                    //echo "name is NOT empty AND error is NOT 4";
                } else { //error code IS #4
                    //echo "error code is 4";
                }
            } else {
                //echo "name is empty!";
                $template = str_replace("{filename}", '', $template);
            }
        }
    }
    clearstatcache();
    
    0 回复  |  直到 7 年前
    推荐文章