为了账号安全,请及时绑定邮箱和手机立即绑定

确认 PHP 的 `file_put_contents()` 何时完成

确认 PHP 的 `file_put_contents()` 何时完成

PHP
皈依舞 2021-10-15 15:35:14
在我的 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;


查看完整回答
反对 回复 2021-10-15
  • 1 回答
  • 0 关注
  • 98 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信