从 jQuery BlueImp 上传器中的文件名中删除空格

Removing whitespace from filename in jQuery BlueImp uploader

我正在使用 BlueImp jQuery 文件上传,https://github.com/blueimp/jQuery-File-Upload/

我们在处理包含空格、前导和尾随的文件时遇到了一些问题。拖尾是一个问题(我认为)主要是从 OSX 上传的文件,因为默认情况下省略了文件扩展名,导致上传的文件看起来像:"test .jpg" 或“test.jpg”,然后导致问题行。

我认为这将是一个相当简单的修复,只需要对 data.files...

中的名称值进行一些修剪

但事实并非如此,我也没有在网上找到任何直接相关的内容。可能我的Google今天的阿福超级虚弱..

我试过在 https://github.com/blueimp/jQuery-File-Upload/wiki/Options#callback-options 处使用回调方法,如下所示:

 $('#fileupload').fileupload({
    submit: function (e, data) { 

    // lotsacode...

    }

    }).bind('fileuploadadd', function (e, data) {

        $.each(data.files, function (index, file) {
                file.name = $.trim(file.name)
            });
        });

然而这给了我:

未捕获类型错误:无法设置只有 getter

的 # 的 属性 名称

我也试过修改核心函数 _onAdd、_onChange 等,但我遇到了同样的问题。

在 Whosebug 上四处寻找解决方案或关于我哪里出错的想法,我发现如果您通过 PHP 使用 UploadHandler-class-,我发现解决方案似乎有效,但我们'不在我们想要考虑这个的位置。所以我想知道是否有什么明显的或不太明显的东西让我遗漏了?

版本:jQuery 文件上传插件 5.17.1,jQuery 文件上传用户界面插件 6.9.5

我不需要给对象添加额外的数据,而是修改默认的文件数据。

此致 托马斯

根据他们的文档,您是否应该将您的卫生链接在 processQueue 中而不是将其绑定到回调?

https://github.com/blueimp/jQuery-File-Upload/wiki/Options#processqueue

我认为您可能绑定到选定的 jQuery 元素而不是文件上传,或者当您收到回调时文件已经处理完毕。

console.log(file) 在每个循环中给出什么样的值?即

$.each(data.files, function (index, file) {
                //file.name = $.trim(file.name)
                console.log(file)
     });
});