Ошибка при изменении размера файла при загрузке файлов

У меня сейчас странная проблема — «filesize (): сбой stat для C: \ xampp \ tmp \ php7A38.tmp» исключение. Проблема возникает, когда я загружаю файлы в моем приложении, построенном на PHP (Laravel).

Прежде чем загружать файлы на сервер, я проверяю размер таких файлов (это работает очень хорошо):

for ($i = 0; $i < $filesLength; $i++) {
if(filesize($request['files'][$i]) < 1572865) {
$file = $request['files'][$i];
$filename = $imageNumber.'.'.$request['files'][$i]->extension();
$file = $file->move(public_path().'/app/newsimages/'.$element->id.'/', $filename);
}
}

Если я так делаю, все работает очень хорошо. Но проблема в том, что я должен поместить этот цикл в другой цикл, например так:

foreach($somelement as $element) {
for ($i = 0; $i < $filesLength; $i++) {
if(filesize($request['files'][$i]) < 1572865) {
$file = $request['files'][$i];
$filename = $imageNumber.'.'.$request['files'][$i]->extension();
$file = $file->move(public_path().'/app/newsimages/'.$element->id.'/', $filename);
}
}
}

В дополнение к этому он падает во втором цикле цикла foreach.

Может быть, у вас есть идея, что здесь не так?

0

Решение

Я думаю, это очевидно, во внутреннем цикле вы перемещаете файл, поэтому при переходе к следующей итерации файла внешнего цикла нет, например, если вы один раз переместите файл:

$request['files'][0]

невозможно выполнить:

filesize($request['files'][0])

потому что этот файл был перемещен — он больше не существует.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]