1 Star 0 Fork 1

久约而逝 / UploadFile

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
UploadMultiFile.java 3.39 KB
一键复制 编辑 原始数据 按行查看 历史
久约而逝 提交于 2015-08-07 13:14 . 新的多文件上传方法
package com.zdkj.jianghu.c2sever.http;
import android.os.Handler;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import java.io.File;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Map;
/**
* Created by Administrator on 2015/8/4.
*/
public class UploadMultiFile {
//private static String url = "http://10.219.57.16:8080/ServerForUpload/ServletForUpload";
// private static String url="http://10.110.6.58:8080/ServerForUpload/ServletForUpload";
public static final int UPLOAD_SUCCESS = 0x123;
public static final int UPLOAD_FAIL = 0x124;
private Handler handler;
public UploadMultiFile(Handler handler) {
this.handler = handler;
}
/**
* @param params 请求参数,包括请求的的方法参数method如:“upload”,
* 请求上传的文件类型fileTypes如:“.jpg.png.docx”
* @param files 要上传的文件集合
*/
public void uploadFileToServer(final String url,final Map<String, String> params, final ArrayList<File> files) {
new Thread(new Runnable() {
@Override
public void run() {
try {
if (uploadFiles(url, params, files)) {
handler.sendEmptyMessage(UPLOAD_SUCCESS);//通知主线程数据发送成功
} else {
handler.sendEmptyMessage(UPLOAD_FAIL); //将数据发送给服务器失败
}
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
/**
* @param url servlet的地址
* @param params 要传递的参数
* @param files 要上传的文件
* @return true if upload success else false
* @throws ClientProtocolException
* @throws IOException
*/
private boolean uploadFiles(String url, Map<String, String> params, ArrayList<File> files) throws ClientProtocolException, IOException {
HttpClient client = new DefaultHttpClient();// 开启一个客户端 HTTP 请求
HttpPost post = new HttpPost(url);//创建 HTTP POST 请求
/* MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.setCharset(Charset.forName("utf-8"));//设置请求的编码格式
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);//设置浏览器兼容模式
int count = 0;
for (File file : files) {
// FileBody fileBody = new FileBody(file);//把文件转换成流对象FileBody
// builder.addPart("file"+count, fileBody);
builder.addBinaryBody("upload", file);
count++;
}
builder.addTextBody("shopId", params.get("shopId"));//设置请求参数
//builder.addTextBody("fileTypes", params.get("fileTypes"));//设置请求参数
HttpEntity entity = builder.build();// 生成 HTTP POST 实体
post.setEntity(entity);//设置请求参数
HttpResponse response = client.execute(post);// 发起请求 并返回请求的响应
if (response.getStatusLine().getStatusCode() == 200) {
return true;
}*/
return false;
}
}
Android
1
https://gitee.com/meiSThub/UploadFile.git
git@gitee.com:meiSThub/UploadFile.git
meiSThub
UploadFile
UploadFile
master

搜索帮助