Blueimp jquery文件上传替代文件名导致预览丢失

时间:2018-04-22 17:43:50

标签: jquery-file-upload blueimp

客户端可以在上传之前预览,但在上传后无法看到作为本地语言文件名。

enter image description here 所以我想在上传图片之前重命名文件名,因为它可以在上传之前和之后预览。

引用https://github.com/blueimp/jQuery-File-Upload/wiki/API

How to provide alternative file names:
The name property of File objects is read only, but an alternative name can be provided as uploadName property for each individual file:

$('#fileupload').fileupload({
    add: function (e, data) {
        var count = data.files.length;
        var i;
        for (i = 0; i < count; i++) {
            data.files[i].uploadName =
                Math.floor(Math.random() * 1000) + '_' + data.files[i].name;
        }
        data.submit();
    }
});

当我使用上面的js函数时,当图像立即添加并提交给服务器时,预览功能很好〜

但是当我删除

data.submit();  

因为我希望客户在上传之前决定是否上传。

缺少预览图像功能! 并且无法上传任何文件。

在提交给服务器之前,是否有任何代码可以重命名unicode文件名(因为本地语言encoing文件名在上传时无法显示在预览函数上)?

1 个答案:

答案 0 :(得分:0)

jquery.fileupload.js ....

  } else {
                $.each(options.files, function (index, file) {
                    // This check allows the tests to run with
                    // dummy objects:
                    if (that._isInstanceOf('File', file) ||
                            that._isInstanceOf('Blob', file)) {
                        formData.append(
                            ($.type(options.paramName) === 'array' &&
                                options.paramName[index]) || paramName,
                            file,
                            file.uploadName || file.name
                        );
                    }
                });
            }
        }

更改最后一次

file.uploadName || file.name

encodeURI(file.uploadName || file.name)

然后可以在后面看到写入解码 fileName = URLDecoder.decode(fileDetail.getFileName(),&#34; UTF-8&#34;);