Android上传图片问题 使用base64转码图片,这样只用上传字符串就好了,然后记得在图片那里用分隔符分割! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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。链接我就不贴了。你百度下应该有的下。 那个 tools.makelog就是打日志,你自己换下Log.i或者Log.d就好。或者不要日志的话直接删了就行。getUrl(suffix)就换成你的接口。file 就是你要上传的文件的对象,keys[]就是你要上传的键值对中的键的数组 values[]就是与之对应的值的数组。逗逼了…应该改下再贴代码的。。你自己改改就好。 不建议你这么做,一般实现方式是:1.将图片一张一张的传给图片服务器,每次上传后服务器返回一个图片ID(好处:这个api专门处理大文件post,图片可以复用)2.将之前所有上传图片的id+文字信息传给另一个服务端接口。 android viewpager可以不要那個點點嗎? 通过蓝牙录音 求助,子线程中处理GPS,问题较多,多放点分 今天想用dw开发个html5界面出现了些问题 怎么让ImageSwitcher显示的图片是原图大小? 安卓使用url获取服务器图片问题 启动apk前,如何先启动自己的activity 求助HttpUrlConnection.getInputStream()异常的问题 一个热爱编程的软工学生求助 Android RecycleView Item 拖拽到另外一个 RecycleView中 android app报错 android,xmpp注册的时候怎么同时创建VCard
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。链接我就不贴了。你百度下应该有的下。
getUrl(suffix)就换成你的接口。file 就是你要上传的文件的对象,keys[]就是你要上传的键值对中的键的数组 values[]就是与之对应的值的数组。
逗逼了…应该改下再贴代码的。。你自己改改就好。
1.将图片一张一张的传给图片服务器,每次上传后服务器返回一个图片ID(好处:这个api专门处理大文件post,图片可以复用)
2.将之前所有上传图片的id+文字信息传给另一个服务端接口。