我正在尝试从blueimp上传jquery文件。文档说我应该能够通过maxNumberOfFiles设置限制要上传的文件数量。jquery文件上传 - 如何限制上传的文件数
然而,这似乎并不在我的情况是工作。没有其他的如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'
为每个文件触发添加回调。即使我尝试实施我自己的解决方案来限制上传文件的数量,我希望能够知道何时所有的“添加”调用都完成了。换句话说,如果我必须实施解决方案,它看起来像
- 等待每个文件的添加事件。维护一个计数器来计算的附加回调每个文件
- 知道什么时候添加的所有事件触发是完整的ALL文件 - 如何???
- 看看有多少文件被上传并阻止所有文件上传如果超过最大允许数量,并提示选择从最初的选择要上传的文件的一个子集。
该解决方案纯粹是客户端的图像和图像直接上传到S3,但我需要防止每次交易超过3上传。在目前的实现中,没有任何东西可以阻止用户选择他/她的整个图像文件夹,并用大量图像搞乱S3存储桶。亚马逊将在策略允许的时间内采用与上传文件数量相同的文件。
出这种乱七八糟的唯一方法似乎是借道我们的服务器的所有上传内容,我正在试图拼命避免由于可伸缩性/性能问题。我们是一个非常小的初创公司,目前只有极小的扩展能力。我的另一个想法是要求服务器为每个文件上传30秒启用策略,这似乎相当麻烦。
任何其他的想法/替代品/建议/人试图建议/使用的工作?