bacy / volley

Android Volley, extended function of Android volley lib.add progress in down and upload. increase the speed of cache i/o.
Apache License 2.0
183 stars 89 forks source link

怎么才能支持多图片上传,你的图片上传中params未调用,需修改。 #4

Closed yyh1992520 closed 9 years ago

yyh1992520 commented 9 years ago

怎么才能支持多图片上传,你的图片上传中params未调用,需修改。

bacy commented 9 years ago

Map<String,Object> params = new HashMap<String, Object>();
params.put("file0", new File("/sdcard/a.jpg"));
params.put("file1", new File("/sdcard/a.jpg"));
params.put("file2", new File("/sdcard/a.jpg"));
params.put("name", "张三");
mHttpTools.upload(url, params, httpResult); 即可

yyh1992520 commented 9 years ago

不能贴图片好麻烦。我的上传参数有一个Header 然后Body里面是 一个ID 一个File 。你这里面只有一个Params。似乎不能区分里面的head和Id和File。

yyh1992520 commented 9 years ago

而且你的upload里面的final Map<String, Object> params并没有调用。所以就算传入了params也没用。

yyh1992520 commented 9 years ago

mMultipartEntity方法是不是只能添加一个addPart?我传3次,接口只能接受到一条数据。

yyh1992520 commented 9 years ago

填写Http Post请求的表单的时候,图片bimap值被覆盖掉了,虽然填写了3次表单,但是只上传了最后一次填写的数据。该如何修改,使得3次数据都可以保存在一张表单上?

bacy commented 9 years ago

是不是三次用的key都一样?

yyh1992520 commented 9 years ago

当然不一样。。。

bacy commented 9 years ago

感谢你的反馈,upload的params确实没有用到,已经修改。 能否提供一下,上传那一部分的代码。 upload建议用public void upload(final RequestInfo requestInfo, final HttpCallback httpResult) 这个方法上传。requestInfo中封装了header,body,queryString的信息

yyh1992520 commented 9 years ago

我现在修改的还只能上传一条数据,只不过多传了几个Map进去,然后跟requestInfo的head和body和file匹配一下就好了。并没有做好封装。我现在去试试你上面提到的方法。

yyh1992520 commented 9 years ago

查看了你的public void upload(final RequestInfo requestInfo, final HttpCallback httpResult)方法,其实你的upload方法里面将params里面的方法传递给requestInfo之后,还是调用了上面的方法。然后里面会使用到一个request.addPart的方法.我上传了3个文件遍历了3次。但是在最后面的表单提交中只是提交了遍历中的最后一次的数据。所以问题就出现在了表单的编写里面,如何在里面把3个文件一次编写在里面。然后通过一个请求发送3个文件的所有信息。

yyh1992520 commented 9 years ago

能否在表单填写那里的数据流里面一次性填写三张图片的信息?也就是在FilePart里面form-data;里面添加3个partname和value。应该需要根据传递过来的参数进行循环遍历。还没修改,你能帮忙修改下吗?下面的writeTo应该也需要遍历才行。

bacy commented 9 years ago

image image

我刚才测试了下,四个文件全部都有传过去啊。 muiltpart提交,每个文件之间必须要有分隔符,合在一起传过去,服务器分不开的。 实在不好解决,可以加我qq:402849647

yyh1992520 commented 9 years ago

你是在哪里进行的分隔符的添加?我申请好友了。

yyh1992520 commented 9 years ago

你修改后的已经可以使用了。我们这边的后台有一定的原因。谢谢~~~~