【问题标题】:How to track the uploaded size of a file in api laravel 8如何在 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 大小的文件,这将需要一些时间。那么关于如何跟踪它的任何想法?

【问题讨论】:

    标签: php laravel api laravel-8 laravel-api


    【解决方案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)中跟踪上传文件的进度。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-25
    • 2015-04-16
    • 2016-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多