我现在面临着奇怪的问题 - “filesize():对于C:\ xampp \ tmp \ php7A38.tmp”异常,stat失败了。当我在使用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 :(得分:1)
我认为这很明显,在内部循环中你移动文件,所以当你去外循环文件的下一次迭代时不存在,所以例如你曾经移动过文件:
$request['files'][0]
无法执行:
filesize($request['files'][0])
因为此文件已被移动 - 它不再存在。