在我的 Laravel 应用程序中,我使用流将大文件(> 1GB)下载到我的服务器以进行额外处理:
$stream = Storage::disk('google')->getDriver()->readStream($file['path']);
file_put_contents(public_path("files/{$filename}.tiff"), stream_get_contents($stream));
if (file_exists(public_path("files/{$filename}.tiff"))) {
ConvertTIFF::dispatch();
return;
}
问题是,因为我正在流式传输文件,文件本身在流式传输过程实际完成之前很久就已创建。所以我的file_exists()支票会经常ConvertTIFF在文件完成之前触发我的事件。
有没有更简单的方法来检查file_put_contents()流处理是否完成?或者有没有办法让进程阻塞,所以在文件完全下载之前触发之前没有事件的危险?
慕慕森