我正在尝试从 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'
每个文件都会触发添加回调。即使我尝试实施自己的解决方案来限制上传文件的数量,我也希望能够知道所有对“添加”的调用何时完成。换句话说,如果我必须实施解决方案,它看起来像
- 等待为每个文件添加事件。维护一个计数器来计算添加回调上的每个文件
- 知道所有文件的所有添加事件触发何时完成——如何???
- 查看上传了多少文件,如果超过允许的最大数量,则阻止所有文件的上传,并提示从初始选择中选择文件子集以进行上传。
该解决方案是纯粹的图像客户端,图像直接上传到 S3,但我需要防止每个事务超过 3 次上传。使用我目前的实现,没有什么可以阻止用户选择他/她的整个图像文件夹并用大量图像弄乱 S3 存储桶。亚马逊将在政策允许的时间内接收尽可能多的文件。
摆脱这种混乱的唯一方法似乎是通过我们的服务器路由所有上传,由于可扩展性/性能问题,我试图拼命避免。我们是一家非常小的初创公司,目前的扩展能力非常小。我的另一个想法是要求服务器为每个文件上传启用 30 秒的启用策略,这似乎很麻烦。
人们尝试/使用过的任何其他想法/替代方案/建议/建议有效吗?