使用base64转码图片,这样只用上传字符串就好了,然后记得在图片那里用分隔符分割!

解决方案 »

  1.   


    public static String SubmitPost(File file, String suffix, String keys[],
    String values[]) {
    HttpClient httpclient = new DefaultHttpClient();
    try {
    HttpPost httppost = new HttpPost(getUrl(suffix));
    MultipartEntity reqEntity = new MultipartEntity();
    if (file != null) {
    Tools.makeLog(tag, "==fileNotBeNull");
    reqEntity.addPart("data", new FileBody(file));
    }
    for (int i = 0; i < keys.length; i++) {
    Tools.makeLog(tag, "==keys:"+keys[i]+"==values:"+values[i]);
    if (values[i] == null) {
    reqEntity.addPart(keys[i],new StringBody(""));
    }
    else {
    reqEntity.addPart(keys[i],new StringBody(values[i], Charset.forName("UTF-8")));
    }
    }
    httppost.setEntity(reqEntity);
    HttpResponse response = httpclient.execute(httppost);
    int statusCode = response.getStatusLine().getStatusCode();
    Tools.makeLog(tag, "==code:"+statusCode);
    if (statusCode == HttpStatus.SC_OK) {
    return EntityUtils.toString(response.getEntity());
    }
    } catch (Exception e) {
    e.printStackTrace();
    System.out.println("==传图片失败_SubmitPost");
    } finally {
    try {
    httpclient.getConnectionManager().shutdown();

    catch (Exception ignore){
        }
    }
    return "";
    }
    这是我之前写的一个post方法,可以同时提交文件和键值对。
    文件的键就是data你让后台用data这个键去取文件流。
    这个方法应该是要两个jar包,分别是httpmime-4.2.jar,httpclient-4.2.jar。链接我就不贴了。你百度下应该有的下。
      

  2.   

    那个  tools.makelog就是打日志,你自己换下Log.i或者Log.d就好。或者不要日志的话直接删了就行。
    getUrl(suffix)就换成你的接口。file 就是你要上传的文件的对象,keys[]就是你要上传的键值对中的键的数组 values[]就是与之对应的值的数组。
    逗逼了…应该改下再贴代码的。。你自己改改就好。
      

  3.   

    不建议你这么做,一般实现方式是:
    1.将图片一张一张的传给图片服务器,每次上传后服务器返回一个图片ID(好处:这个api专门处理大文件post,图片可以复用)
    2.将之前所有上传图片的id+文字信息传给另一个服务端接口。