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对文字、图片、视频进行综合上传的更多相关文章

  1. 使用Spring和JQuery实现视频文件的上传和播放

    Spring MVC可以很方便用户进行WEB应用的开发,实现Model.View和Controller的分离,再结合Spring boot可以很方便.轻量级部署WEB应用,这里为大家介绍如何使用Spr ...

  2. 使用html5 FileReader获取图片,并异步上传到服务器(不使用iframe)

    使用html5 FileReader获取图片,并异步上传到服务器(不使用iframe)   原理: 1.使用FileReader 读取图片的base64编码 2.使用ajax,把图片的base64编码 ...

  3. #添加图片,最多只能上传9张.md

    #添加图片,最多只能上传9张.md 前端页面: ```javascript <form id="imgForm" enctype="multipart/form-d ...

  4. 适应各浏览器图片裁剪无刷新上传jQuery插件(转)

    看到一篇兼容性很强的图片无刷新裁剪上传的帖子,感觉很棒.分享下!~ 废话不多说,上效果图. 一.首先建立如下的一个page <!DOCTYPE html> <html xmlns=& ...

  5. puzz: 图片和表单上传的不一致问题

    1.    方向1 用户提交表单, 图片和表单同步上传.(由同一服务器处理, 服务器压力大. 没有分离) 2.    方向2 图片和表单分开上传. 如图片访问ftp,表单提交后台(图片和后台分离) 2 ...

  6. 【Android实战】----基于Retrofit实现多图片/文件、图文上传

    本文代码详见:https://github.com/honghailiang/RetrofitUpLoadImage 一.再次膜拜下Retrofit Retrofit不管从性能还是使用方便性上都非常屌 ...

  7. 使用html5 FileReader获取图片,并异步上传到server(不使用iframe)

    使用html5 FileReader获取图片,并异步上传到server(不使用iframe) 原理: 1.使用FileReader 读取图片的base64编码 2.使用ajax.把图片的base64编 ...

  8. [.NET]c#.net程序中使用ffmpeg.exe来处理视频并生成上传视频的截图

    添加如下前台代码: <asp:FileUpload ID="FileUpload1" runat="server" /> <asp:Butto ...

  9. h5实现本地图片或文件的上传

    首先放一个今天学到的小demo: <!DOCTYPE html> <html lang="en"> <head> <meta charse ...

随机推荐

  1. Loj10154 选课

    试题描述: 大学实行学分制.每门课程都有一定的学分,学生只要选修了这门课并通过考核就能获得相应学分.学生最后的学分是他选修各门课的学分总和.每个学生都要选择规定数量的课程.其中有些课程可以直接选修,有 ...

  2. Nuget 下载过慢的解决办法

    设置依赖项行为为忽略,文件冲突操作为忽略

  3. 七层负载(Application Gateway)+四层负载(LB)

    上次有个电商客户需要搭建如架构. 192.168.1.100/url1(请求url)——>Node1:10.0.0.4.10.0.0.5(服务器IP) 192.168.1.100/url2(请求 ...

  4. MDK5 and STM32Cube

    D:\Workspace\........\RTE\Device>STM32CubeMX.exe -s project.script -tpl_path C:\Keil5\ARM\Pack\Ke ...

  5. SQL Server DATEDIFF() 函数(SQL计算时间差)

    select  *   from   task_list  where 1=1 and    datediff(dd,carateTime,getdate()) =0      定义和用法 DATED ...

  6. ThinkPHP 模型方法 setInc() 和 setDec() 使用详解

    对于数字字段的加减,可以直接使用 setInc() 与 setDec() 方法 ThinkPHP 内置了对统计数据(数字字段)的更新方法: setInc():将数字字段值增加 setDec():将数字 ...

  7. [置顶] Redis String类型数据常用的16条命令总结

    Redis String类型数据常用的16条命令总结 描述:String 类型是最简单的类型,一个Key对应一个Value,String类型是二进制安全的.Redis的String可以包含任何数据,比 ...

  8. Plan Explorer数据库

    Plan Explorer数据库 https://www.sentryone.com/platform/sql-server-performance-monitoring

  9. ASIHTTPRequest系列(一):同步和异步请求

    ASIHTTPRequest系列(一):同步和异步请求 发表于8个月前(2013-11-27 19:21)   阅读(431) | 评论(0) 6人收藏此文章, 我要收藏 赞0 ASIHTTPRequ ...

  10. ASP.NET MVC:三个被隐藏的扩展性“钻石”(转载)

    原文地址:http://haacked.com/archive/2010/05/16/three-hidden-extensibility-gems-in-asp-net-4.aspx/. ASP.N ...