使用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 ...
随机推荐
- Stf-windows版本
Stf-windows Stf 原项目地址:https://github.com/openstf/stf . 介绍 用于Web端设备远程管理 系统支持 支持Android版本2.3.3 (SDK10) ...
- 【NOI2005】聪聪和可可 概率与期望 记忆化搜索
1415: [Noi2005]聪聪和可可 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1635 Solved: 958[Submit][Statu ...
- LightOJ 1366 - Pair of Touching Circles (统计矩形内外切圆对)
1366 - Pair of Touching Circles PDF (English) Statistics Forum Time Limit: 3 second(s) Memory Limi ...
- 《Go学习笔记 . 雨痕》类型
一.基本类型 清晰完备的预定义基础类型,使得开发跨平台应用时无须过多考虑符合和长度差异. 类型 长度 默认值 说明 bool 1 false byte 1 0 uint8 int, uint 4, ...
- oracle linux dtrace
http://docs.oracle.com/cd/E37670_01/E38608/html/pref.html
- c编程:输入一个数字n,则n代表n行,每行输入2个数字a,b计算每行的a+b问题。
输入 第一行输入要计算的数据组数 n 接下来的 n 行,每行包括两个数a和b 输出 每行输出一组数据中a+b的值 例子输入 2 1 2 4 0 例子输出 3 4 代码: #include<std ...
- 测试RemObjects Pascal Script
unit Unit1; interface usesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, ...
- 分布式系统唯一ID生成方案汇总 转
系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,也常常为这个问题而纠结.生成ID的方法有很多,适应不同的场景.需求以及性能要求.所以有些比较复杂的系统会有多个ID生成的策略.下面就介绍一些常见 ...
- Xcode打包踩过的那些坑
一.file was built for archive which is not the architecture being linked (armv7s) 项目是基于cocos2d-x绑定lua ...
- 完美解决Invalid layout of java.lang.String at value问题的方法
:-(昨天一天没有写东西了,今晚略显有愧啊.昨天整理了下自己的电脑和桌面,把一些没有用和杂乱的东西都收拾收拾,于是一天就没了.今天赶快来补文章.本篇主要讲的是解决Invalid layout of j ...