阿余
阿余
  • 发布:2016-06-23 11:41
  • 更新:2016-06-27 18:59
  • 阅读:1769

【报Bug】uploader的参数顺序及文档与参数的顺序未按操作的顺序提交

分类:HTML5+

详细问题描述
[内容]

我的应用是将手机拍照的文件上传到阿里云的OSS上,现在遇到个问题,我的代码如下:

// 要提交的参数  
                uploader.addData("key", rst.dir + new Date().getTime() + suffix);  
                uploader.addData("policy", rst.policy);  
                uploader.addData("OSSAccessKeyId", rst.accessid);  
                uploader.addData("success_action_status", "200");  
                uploader.addData("callback", rst.callback);  
                uploader.addData("signature", rst.signature);  

                // 指定要上传的文件  
                uploader.addFile(filePath, {key: "file", name: "file", mime: "image/jpeg"});

上面代码明确表示了,我加入参数的顺序,即参数key必须在第一个,文件必须在所有参数的最后,如果有多个文件,也必须按加入的顺序提交请求

而我抓到的http请求的数据是这样的:

从提交的参数和HTTP抓包的结果看出,提交的请求的参数顺序没有规则,不是按我预置的顺序排序并提交请求的。

这个问题在一般的软件开发没有问题,因为一般的开发,处理方式都是获取到整个请求数据后,再获取相应的参数或文件进行处理,但上传到阿里云OSS的请求就必须是参数在前,文件在后,因为文件可能很大,最大5G,并且OSS有安全校验,这个校验必须依据前面的参数进行判断,如果发现不合法,后面的文件就会直接不处理,不接收,不保存。如果合法,参数里有文件名(key),也才知道文件收到后该保存成什么名字。而我们平常的WEB上传处理,比如java的Servlet对文件的处理都是先自动保存一个临时文件,我们直接对这个文件进行处理就行了。但OSS的文件可能很大,不可能先保存一个临时文件,再按指定的文件命名,而是直接知道名称直接流式保存文件了。

所以请技术团队确认并处理这个问题,谢谢!

hbuilder使用的是alpha最新版,即6月22号晚10点的版本
手机用的mi2 miui8

2016-06-23 11:41 1 条评论 负责人:无 分享
已邀请:
mfans

mfans

我也遇到同样的问题

DCloud_App_Array

DCloud_App_Array

此问题已经更新到Alpha版本中,正式版后续会更新

该问题目前已经被锁定, 无法添加新回复