使用MultipartEntity对文字、图片、视频进行综合上传
package com.home.upload; import java.io.File;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List; import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.entity.mime.content.StringBody;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.util.EntityUtils; import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button; public class MainActivity extends Activity implements OnClickListener {
private Button uploadBtn; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
uploadBtn = (Button) findViewById(R.id.main_btn);
uploadBtn.setOnClickListener(this);
} @Override
public void onClick(View v) {
if (v == uploadBtn) {
final List<String> list = new ArrayList<String>();
list.add("/storage/sdcard0/updateAdtech/orgpic/1.png");
list.add("/storage/sdcard0/updateAdtech/orgpic/2.png");
new Thread() {
public void run() {
postMethod("just test", "sdcard/image/a.amr", list);
};
}.start();
}
} /**
*
* @Description: 上传方法
*
* @param audioPath
* 上传音频文件地址 例:sdcard/image/a.amr
*
* @param text
* 上传文本的值
*
* @param imageUrlList
* 图片地址的集合 例:sdcard/image/a.jpg, sdcard/image/b.jpg
*
* @return void
*/ private synchronized void postMethod(String text, String audioPath,
List<String> imageUrlList) {
try {
String[] filePath = new String[imageUrlList.size()];
int size = imageUrlList.size();
for (int i = 0; i < size; i++) {
filePath[i] = imageUrlList.get(i);
}
// 链接超时,请求超时设置
BasicHttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, 10 * 1000);
HttpConnectionParams.setSoTimeout(httpParams, 10 * 1000); // 请求参数设置
HttpClient client = new DefaultHttpClient(httpParams);
HttpPost post = new HttpPost(
"http://service.ireadhome.com/api/Upload/Image");
MultipartEntity entity = new MultipartEntity();
// 上传 文本, 转换编码为utf-8 其中"text" 为字段名,
// 后边new StringBody(text,
// Charset.forName(CHARSET))为参数值,其实就是正常的值转换成utf-8的编码格式
entity.addPart("text",
new StringBody(text, Charset.forName("UTF-8")));
// 上传多个文本可以在此处添加上边代码,修改字段和值即可 // 上传音频文件
entity.addPart("audio",
new FileBody(new File(audioPath), "audio/*"));
// 上传图片
for (String p : filePath) {
entity.addPart("fileimg", new FileBody(new File(p), "image/*"));
}
post.setEntity(entity);
HttpResponse resp = client.execute(post);
// 获取回调值
System.out.println("Response:"
+ EntityUtils.toString(resp.getEntity()));
System.out.println("StatusCode:"
+ resp.getStatusLine().getStatusCode());
} catch (Exception e) {
e.printStackTrace();
}
}
}
使用MultipartEntity对文字、图片、视频进行综合上传的更多相关文章
- 使用Spring和JQuery实现视频文件的上传和播放
Spring MVC可以很方便用户进行WEB应用的开发,实现Model.View和Controller的分离,再结合Spring boot可以很方便.轻量级部署WEB应用,这里为大家介绍如何使用Spr ...
- 使用html5 FileReader获取图片,并异步上传到服务器(不使用iframe)
使用html5 FileReader获取图片,并异步上传到服务器(不使用iframe) 原理: 1.使用FileReader 读取图片的base64编码 2.使用ajax,把图片的base64编码 ...
- #添加图片,最多只能上传9张.md
#添加图片,最多只能上传9张.md 前端页面: ```javascript <form id="imgForm" enctype="multipart/form-d ...
- 适应各浏览器图片裁剪无刷新上传jQuery插件(转)
看到一篇兼容性很强的图片无刷新裁剪上传的帖子,感觉很棒.分享下!~ 废话不多说,上效果图. 一.首先建立如下的一个page <!DOCTYPE html> <html xmlns=& ...
- puzz: 图片和表单上传的不一致问题
1. 方向1 用户提交表单, 图片和表单同步上传.(由同一服务器处理, 服务器压力大. 没有分离) 2. 方向2 图片和表单分开上传. 如图片访问ftp,表单提交后台(图片和后台分离) 2 ...
- 【Android实战】----基于Retrofit实现多图片/文件、图文上传
本文代码详见:https://github.com/honghailiang/RetrofitUpLoadImage 一.再次膜拜下Retrofit Retrofit不管从性能还是使用方便性上都非常屌 ...
- 使用html5 FileReader获取图片,并异步上传到server(不使用iframe)
使用html5 FileReader获取图片,并异步上传到server(不使用iframe) 原理: 1.使用FileReader 读取图片的base64编码 2.使用ajax.把图片的base64编 ...
- [.NET]c#.net程序中使用ffmpeg.exe来处理视频并生成上传视频的截图
添加如下前台代码: <asp:FileUpload ID="FileUpload1" runat="server" /> <asp:Butto ...
- h5实现本地图片或文件的上传
首先放一个今天学到的小demo: <!DOCTYPE html> <html lang="en"> <head> <meta charse ...
随机推荐
- shell 常用命令语句
查找并删除 sudo fing / -name '*fcitx*' | xargs sudo rm -rf find . -type d -name ‘.svn’ | xargs rm -rf fin ...
- CAT架构的应用与实践 IT大咖说 - 大咖干货,不再错过
CAT架构的应用与实践 IT大咖说 - 大咖干货,不再错过 http://www.itdks.com/dakashuo/new/dakalive/detail/594
- Redis "MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk"问题的解决(转)
今天第二次遇到Redis “MISCONF Redis is configured to save RDB snapshots, but is currently not able to persis ...
- .net加载失败的程序集重新加载
在.net程序中,程序集是Lazy加载的,只有在用的时候才会去加载,当程序集加载失败时,会触发AppDomain.AssemblyResolve的事件,在这个事件中,我们甚至还可以进行补救,从别得地方 ...
- 使用Puppeteer进行数据抓取(二)——Page对象
page对象是puppeteer最常用的对象,它可以认为是chrome的一个tab页,主要的页面操作都是通过它进行的.Google的官方文档详细介绍了page对象的使用,这里我只是简单的小结一下. 客 ...
- ASP.NET Web Pages 的冲突版本问题
随着VS版本和.NET MVC版本.EF的版本的不断更新,虽然很多功能随着版本的提升而更完善,但对于旧版本开发的软件就有点悲催了,或许很多开发者都遇到类似的问题! 最近有一个项目是用.NET MVC3 ...
- delphi dxRibbon中 F10快捷键不好用的原因
最近在项目中使用ribbon ,用F10做快捷键,但是不好用, 不好用的原因是dxBarManager1 中的有个选项UseF10ForMenu, 把这项关闭就可以了
- 使用java中replaceAll方法替换字符串中的反斜杠
今天在项目中使用java中replaceAll方法将字符串中的反斜杠("\")替换成空字符串(""),结果出现如下的异常: java.util.regex.Pa ...
- 在Brackets中使用Emmet
当在Brackets中安装上Emmet插件后,就可以使用Emmet的语法来加速前端编写. 有关html ● 子关系> div>ul>li ● 相邻+ div+p+bq ● 上一级^ ...
- spring-boot项目在eclipse中指定配置文件启动
原文:https://blog.csdn.net/ztx114/article/details/80076339 如下图我的项目有三个配置文件,假如我向指定用application-test.yml启 ...