У меня есть форма, которая позволяет от 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();