在我的 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 關注
- 124 瀏覽
添加回答
舉報
0/150
提交
取消