在我的 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()流处理是否完成?或者有没有办法让进程阻塞,所以在文件完全下载之前触发之前没有事件的危险?
1 回答
慕慕森
TA贡献1856条经验 获得超17个赞
file_put_contents()返回写入文件的字节数,如果不成功则返回 False。所以你可以像这样检查状态
$status = file_put_contents(public_path("files/{$filename}.tiff"), stream_get_contents($stream));
/*if ($status) {
echo "success";
} else {
echo "failed";
}*/
return $status;
- 1 回答
- 0 关注
- 98 浏览
添加回答
举报
0/150
提交
取消