Несколько файлов загружаются в первом цикле foreach, что приводит к ошибке в системе загрузки файлов - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть форма, которая позволяет от 1 до нескольких загрузок файлов.Я только что заметил, что при многократной загрузке файлов с отправкой возникает ошибка.

Invalid argument supplied for foreach()

Для этой строки:

foreach ($filename as $indFile) {

Файлы загружаются, но это влияет на другие области файла из-за ошибки.

Я добавил в var_export($filename);, чтобы выполнить некоторую отладку, и это распечатано:

array ( 0 => 'aboveFold.PNG', 1 => 'afterglow.png', )0<br /> <b>Warning</b>: Invalid argument supplied for foreach()

Из этого var_export я получаю то, что загрузка файла происходит через первый цикл, а затем, когда он повторяется, он создает 0.

Есть ли у кого-нибудь какие-либо предложения, которые исправят это?проблема с загрузкой нескольких файлов при сохранении формы для работы с одним файлом или без него.

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();
                //var_export($filename);
                $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) {
                    //$template = str_replace("{filename}", "A file was uploaded. You can download the file from: <a href='https://mbkit.com/php/uploads/{$indFile}'>{$indFile}</a>", $template);
                    //print_r($template);
                    $out .= "<li><a href='https://mbkit.com/php/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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...