上传文件时文件大小统计失败

Filesize stat failed while uploading files

我现在遇到了一个奇怪的问题 - "filesize(): stat failed for 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])

因为此文件已移动 - 它不再存在。