浏览器崩溃后继续上传

问题描述 投票:2回答:1

我正在进行文件上传,以上传最大2GB的大文件。因此,我需要确保即使在浏览器崩溃或其他事情后下载也会恢复。 resumable.js看起来非常有希望,所以我尝试了:

<a href="#" id="browseButton">Select files</a>
    <!-- JAVASCRIPT -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    <script src="js/resumable.js"></script>
    <script>
        var r = new Resumable({
            target: "upload.php"
        });

        r.assignBrowse(document.getElementById("browseButton"));

        r.on('fileAdded', function(data) {
            // File added, start uploading
            r.upload();
        });

        r.on('fileProgress', function(data) {
            console.log(Math.floor(r.progress()*100) + '%');
        });
    </script>

对于我的upload.php(从块中创建文件)我使用了这个php后端示例:https://github.com/23/resumable.js/blob/master/samples/Backend%20on%20PHP.md

上传工作正常,甚至是大文件,但如果我意外关闭了打开的选项卡或浏览器,我找不到任何有用的恢复下载。 php后端脚本似乎已经实现了一些功能:

//check if request is GET and the requested chunk exists or not. this makes testChunks work
if ($_SERVER['REQUEST_METHOD'] === 'GET') {

    $temp_dir = 'temp/'.$_GET['resumableIdentifier'];
    $chunk_file = $temp_dir.'/'.$_GET['resumableFilename'].'.part'.$_GET['resumableChunkNumber'];
    if (file_exists($chunk_file)) {
         header("HTTP/1.0 200 Ok");
       } else
       {
         header("HTTP/1.0 404 Not Found");
       }
    }

Resumable.js documentation说:

这将允许在浏览器重新启动后甚至跨浏览器恢复上传(理论上,您甚至可以跨多个选项卡或不同的浏览器运行相同的文件上载)。列出的POST数据请求需要使用Resumable.js来接收数据

但由于我在服务器端编程/配置方面不是那么擅长,我不知道如何实现该功能/检查是否有可以恢复的上传。有没有人遇到过类似的问题,可以解释一下浏览器重启后如何恢复下载?

php file-upload resumablejs
1个回答
0
投票

你可以使用this package

在examples / js-examples / resumable-chunk-upload示例中,您可以关闭并重新打开浏览器,然后恢复未完成的上传。

© www.soinside.com 2019 - 2024. All rights reserved.