0

首先对不起我的英语。

我正在尝试使用 laravel 上传大文件。我也明白,我需要将此文件流式传输到我的本地存储。我还使用 blueimp/jquery-file-upload 可以制作一个块。不过,如果我在服务器端流式传输文件,我应该在客户端使用块吗?

我需要的只是上传一个大文件,甚至是几个带有进度条的文件。如果上传会吃掉我所有的内存,那也很好。

我所尝试的只是一组默认的 blueimp/jquery-file-upload 插件,看起来像

// Initialize the jQuery File Upload widget:
    $('#fileupload').fileupload({
        // Uncomment the following to send cross-domain cookies:
        //xhrFields: {withCredentials: true},
        url: 'upload',
        //maxChunkSize: 10000000
    });

Laravel 控制器看起来像

$images = $request->file('files');
        foreach ($images as $file)
        {
            $extension  = $file->getClientOriginalExtension();
            $imageName = $file->getClientOriginalName();
            $disk = Storage::disk('local');
            $disk->put("$imageName.$extension", fopen($file, 'r+'));
        }

当我想要客户端的块文件时,我把 maxChunkSize: 1024 *1024 *1024 *1024 *1024 *1024 * 10

并像改变服务器端一样

$images = $request->file('files');
        foreach ($images as $file)
        {
            $file->store(
                'f/', 'local'
            );
        }

它的保存文件小于 100MB,如果尝试上传有点大的文件我有一个错误——有效负载太大——这个错误在调试控制台中有下一条消息

POST Content-Length of 445883220 bytes exceeds the limit of 134217728 bytes in

但为什么?我不是用块吗?我这样做了,但它不能正常工作。

4

0 回答 0