如何使用html5命名上传的区块

How to name uploaded chunk using html5?

本文关键字:何使用 html5      更新时间:2023-09-26

我有这个代码:

function upload_by_chunks() {
    var chunk_size = 1048576; // 1MB
    function slice(start, end) {
        if (file.slice) {
            return file.slice(start, end);
        } else if (file.webkitSlice) {
            return file.webkitSlice(start, end);
        }
    }
    var i = 0;
    function process(start, end) {
        if (start < file.size) {
            var chunk = slice(start, end);
            chunk.name = file.name;
            var formData = new FormData();
            formData.append('file', chunk);
            formData.append('token', token);
            formData.append('path', leash.cwd);
            $.ajax({
                url: 'lib/upload.php?append=1',
                type: 'POST',
                success: function(response) {
                    if (response.error) {
                        alert(response.error);
                    }
                    process(end, end+chunk_size);
                },
                error: function(jxhr, error, status) {
                    alert(jxhr.statusText);
                },
                data: formData,
                cache: false,
                contentType: false,
                processData: false
            });
        } else {
            alert('File "' + file.name + '" uploaded.');
        }
    }
    process(0, chunk_size);
}

我已经使用chunk.name = file.name;设置了名称,但在php中,文件名是blob。

 $fname = basename($_FILES['file']['name']);

方法append有一个可选的第三个参数,它允许您为blob设置文件名。

formData.append('file', chunk, file.name);