如何在 api laravel 8 中跟踪文件的上传大小
Posted
技术标签:
【中文标题】如何在 api laravel 8 中跟踪文件的上传大小【英文标题】:How to track the uploaded size of a file in api laravel 8 【发布时间】:2021-06-13 17:30:03 【问题描述】:我正在使用 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 大小的文件,这将需要一些时间。那么关于如何跟踪它的任何想法?
【问题讨论】:
【参考方案1】:也许你想创建这个:
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
发送它,使用这个功能。
【讨论】:
请不要单独提交链接。链接往往会在某个时候停止工作;请详细说明你的答案。 我正在开发一个api。因此,在执行此功能期间,我需要跟踪上传的大小并将其转换为百分比并将其插入数据库中。前端应用程序应该调用另一个函数来检查数据库的进度,然后前端应用程序将显示它。我没有使用 laravel 开发前端。有一个 c++ 桌面应用程序会请求这个函数。知道如何实现我的目标吗? @AliWehbi hhow do you say the API it´s in laravel 8 ...为此我评论了这个链接。我不知道 C++ 我知道 php、laravel、javascript 等...我用一个可以用来获取文件大小的函数编辑了我的回复。但我无法帮助您获取文件的 % 上传,因为我不知道如何在 c++ 中获取 % 上传 我并不是在告诉你该函数应该用 C++ 编写。我所说的前端应用程序(使用 c++ 开发的桌面应用程序)需要与我的后端应用程序(使用 php laravel 开发)进行对话。所以这里前端需要通过调用我的 api 上传文件并将文件附加到它的主体(POST REQUEST)中。所以我需要在我的后端服务(PHP、LARAVEL)中跟踪上传文件的进度。以上是关于如何在 api laravel 8 中跟踪文件的上传大小的主要内容,如果未能解决你的问题,请参考以下文章
如何在 laravel 8 中为 API 返回验证规则和消息作为 JSON
如何从 Laravel 8 中的自定义 Web 路由中删除“api/”前缀?
如何注销并撤销 laravel 8 api 中的所有 oauth 令牌?