基本信息
源码名称:java 文件上传示例源码下载
源码大小:0.95M
文件格式:.zip
开发语言:Java
更新时间:2015-05-09
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
文件上传
package com.ilovn.libs.fileupload; import java.io.File; import java.io.IOException; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.mime.FormBodyPart; import org.apache.http.entity.mime.content.FileBody; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.protocol.BasicHttpContext; import org.apache.http.protocol.HttpContext; import org.apache.http.util.EntityUtils; import android.os.AsyncTask; import android.util.Log; import android.webkit.URLUtil; import com.ilovn.libs.fileupload.CustomMultiPartEntity.ProgressListener; /** * 文件上传 * * @author zhaoyong * */ public class HttpMultipartPost extends AsyncTask<HttpResponse, Integer, String> { private static final String TAG = HttpMultipartPost.class.getSimpleName(); private String url; private long totalSize; private String[] files; private FormBodyPart[] parts; private CallBack mCallBack; private CallBackMsg mCallBackMsg; /** * * @param url * @param files * 文件路径 * @param parts * 其他参数 */ public HttpMultipartPost(String url, String[] files, FormBodyPart... parts) { super(); this.url = url; this.files = files; this.parts = parts; } @Override protected void onPreExecute() { if (!URLUtil.isNetworkUrl(url)) { throw new IllegalArgumentException("unvalid url for post!"); } } @Override protected String doInBackground(HttpResponse... arg0) { HttpClient httpClient = new DefaultHttpClient(); HttpContext httpContext = new BasicHttpContext(); HttpPost httpPost = new HttpPost(url); try { CustomMultiPartEntity multipartContent = new CustomMultiPartEntity( new ProgressListener() { @Override public void transferred(long num) { publishProgress((int) ((num / (float) totalSize) * 100)); } }); // add all file for (String file : files) { multipartContent.addPart("files", new FileBody(new File(file))); } // add other parts for (FormBodyPart part : parts) { multipartContent.addPart(part); } totalSize = multipartContent.getContentLength(); // Send it httpPost.setEntity(multipartContent); HttpResponse response = httpClient.execute(httpPost, httpContext); String serverResponse = EntityUtils.toString(response.getEntity()); return serverResponse; } catch (IOException e) { return "{\"msg\":\"post failed!\"}"; } } @Override protected void onProgressUpdate(Integer... progress) { if (mCallBack != null) { mCallBack.update(progress[0]); } } @Override protected void onPostExecute(String param) { Log.d(TAG, param ""); if (mCallBackMsg != null) { mCallBackMsg.msg(param); } } public void setCallBack(CallBack mCallBack) { this.mCallBack = mCallBack; } public void setCallBackMsg(CallBackMsg mCallBackMsg) { this.mCallBackMsg = mCallBackMsg; } public interface CallBack { public void update(Integer i); } public interface CallBackMsg { public void msg(String msg); } }