Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File upload Jquery文件上传-如何限制上传的文件数量_File Upload_Amazon S3_Image Uploading_Jquery File Upload - Fatal编程技术网

File upload Jquery文件上传-如何限制上传的文件数量

File upload Jquery文件上传-如何限制上传的文件数量,file-upload,amazon-s3,image-uploading,jquery-file-upload,File Upload,Amazon S3,Image Uploading,Jquery File Upload,我正在尝试从blueimp上传Jquery文件。文档中说,我应该能够使用maxNumberOfFiles设置限制要上载的文件数量 然而,这在我的情况下似乎不起作用。其他的如acceptFileTypes、loadImageMaxFileSize等似乎都不起作用(可能我必须包含其他js文件?-尽管做了很多研究,但我不知道到底是哪些文件或如何连接它们)。我正在使用插件的基本版本。下面是我的代码的外观: JS文件包括: jquery\u ui\u widget.js jquery_iframe_tra

我正在尝试从blueimp上传Jquery文件。文档中说,我应该能够使用maxNumberOfFiles设置限制要上载的文件数量

然而,这在我的情况下似乎不起作用。其他的如acceptFileTypes、loadImageMaxFileSize等似乎都不起作用(可能我必须包含其他js文件?-尽管做了很多研究,但我不知道到底是哪些文件或如何连接它们)。我正在使用插件的基本版本。下面是我的代码的外观:

JS文件包括:

  • jquery\u ui\u widget.js
  • jquery_iframe_transport.js
  • jquery_文件_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 event on。维护一个计数器,对add回调上的每个文件进行计数
  • 知道所有文件的所有添加事件触发何时完成--如何完成
  • 查看上载了多少文件,如果超过允许的最大数量,则阻止上载所有文件,并提示从初始选择中选择要上载的文件子集
  • 该解决方案是纯客户端的图像和图像直接上传到S3,但我需要防止每个事务上传超过3次。在我目前的实现中,没有任何东西可以阻止用户选择他/她的整个图像文件夹,并用大量图像将S3存储桶弄乱。亚马逊则将在政策允许的时间内接收尽可能多的上传文件

    摆脱这一混乱局面的唯一办法似乎是通过我们的服务器路由所有上传,由于可伸缩性/性能问题,我正极力避免这样做。我们是一家非常小的初创公司,目前的扩展能力非常小。我的另一个想法是要求服务器为每个文件上传启用30秒的策略,这看起来相当麻烦


    人们尝试/使用过的任何其他想法/备选方案/建议/建议是否有效?

    我认为您必须验证用户身份(Facebook、谷歌、亚马逊),为每个用户分配一个子文件夹,并查询用户文件夹中已有的文件数,然后再决定是否允许再次上载。

    来自位于的文档

    注意:maxNumberOfFiles选项取决于getNumberOfFiles 选项,该选项由UI和AngularJS实现定义

    对于maxNumberOfFiles,您需要包括这两个文件中的一个。 要使其余部分正常工作,您需要fileupload-validate.js

    你可能还需要更多。我建议包括所有可选的js文件,然后删除不需要的文件