在我的 Laravel 應(yīng)用程序中,我使用流將大文件(> 1GB)下載到我的服務(wù)器以進(jìn)行額外處理: $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; }問題是,因為我正在流式傳輸文件,文件本身在流式傳輸過程實際完成之前很久就已創(chuàng)建。所以我的file_exists()支票會經(jīng)常ConvertTIFF在文件完成之前觸發(fā)我的事件。有沒有更簡單的方法來檢查file_put_contents()流處理是否完成?或者有沒有辦法讓進(jìn)程阻塞,所以在文件完全下載之前觸發(fā)之前沒有事件的危險?
1 回答

慕慕森
TA貢獻(xiàn)1856條經(jīng)驗 獲得超17個贊
file_put_contents()返回寫入文件的字節(jié)數(shù),如果不成功則返回 False。所以你可以像這樣檢查狀態(tài)
$status = file_put_contents(public_path("files/{$filename}.tiff"), stream_get_contents($stream));
/*if ($status) {
echo "success";
} else {
echo "failed";
}*/
return $status;
- 1 回答
- 0 關(guān)注
- 125 瀏覽
添加回答
舉報
0/150
提交
取消