У меня сейчас странная проблема — «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.
Может быть, у вас есть идея, что здесь не так?
Я думаю, это очевидно, во внутреннем цикле вы перемещаете файл, поэтому при переходе к следующей итерации файла внешнего цикла нет, например, если вы один раз переместите файл:
$request['files'][0]
невозможно выполнить:
filesize($request['files'][0])
потому что этот файл был перемещен — он больше не существует.
Других решений пока нет …