我正在尝试使用blueimp的Jquery文件上传。文档说我应该能够通过maxNumberOfFiles设置限制要上传的文件数量。
然而,在我的情况下,这似乎不起作用。其他类似acceptFileTypes、loadImageMaxFileSize等也似乎不起作用(可能我必须包含其他js文件?-实际上并不知道是哪些或如何连接它们,经过很多研究仍不能解决)。我正在使用插件的基本版本。下面是我的代码:
包含的JS文件:
- jquery_ui_widget.js
- jquery_iframe_transport.js
- jquery_file_upload.js
- tmpl.js
JS代码:
$('#fileupload').fileupload
maxFileSize: 3 * 1024
minFileSize: 1
maxNumberOfFiles: maxFilesAllowed
autoUpload: false
loadImageMaxFileSize: 3 * 1024
acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i
add: (e, data) =>
console.log 'add callback triggered'
add回调函数会为每个文件都触发。即使我试图实现自己的解决方案来限制上传文件的数量,我仍然希望能够知道所有“add”调用何时完成。换句话说,如果我必须实现这个解决方案,它看起来将是:
- 等待每个文件的add事件。在add回调函数中维护一个计数器以计算每个文件
- 如何知道全部文件的add事件触发已经完成?
- 查看上传的文件数量,并防止上传的所有文件超过所允许的最大数量,并提示从初始选择的文件集合中选择一些文件进行上传。
唯一的解决办法似乎是将所有上传路由通过我们的服务器,但这会因可扩展性/性能问题而被迫避免。我们是一个非常小的初创公司,在这个时候几乎没有扩展能力。我想到的另一个想法是为每个文件上传请求向服务器申请一个30秒启用的策略,但这似乎相当麻烦。
还有其他想法/替代方案/建议/推荐已经尝试/使用过并奏效的吗?