php - 如何在 api laravel 8 中跟踪文件的上传大小
问题描述
我正在使用 laravel 8 开发文件系统管理。
我创建了一个接受文件的函数。
public function uploadExperiment(Request $request)
{
$file = $request->file('file');
$uniqueId = time();
$fileName = $file->getClientOriginalName();
$filePath = $uniqueId . '/' . $fileName;
Storage::disk('local')->put($filePath, file_get_contents($file));
return response()->json(["success"=>true]);
}
我需要在上传过程中跟踪上传的大小,我需要将这个进度保存在数据库中。
例如,如果我想上传一个 2GB 大小的文件,这将需要时间。那么关于如何跟踪它的任何想法?
解决方案
也许你想创建这个:
https://www.itsolutionstuff.com/post/php-laravel-file-upload-with-progress-bar-exampleexample.html
要在 laravel 中上传大小文件,请使用:
$size = $request->file('file')->getSize();
也许可以使用它来获取您上传的百分比,您可以使用 jquery。但是如果你想在 php 中做,我认为你有一个想法,你可以这样做:
function timeout_trigger() {
var loaded = file.getLoaded(); // loaded part
p = parseInt(loaded / size);
$(".progress").css("max-width",p+"%");
$(".progress-view").text(p+"%");
if(p!=100) {
setTimeout('timeout_trigger()', 20);
}
}
timeout_trigger();
我认为您有一个表格,并POST
为此使用此功能发送。