zoukankan      html  css  js  c++  java
  • 使用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();
    		}
    	}
    }
    


     

  • 相关阅读:
    BZOJ 3744 Gty的妹子序列
    BZOJ 3872 Ant colony
    BZOJ 1087 互不侵犯
    BZOJ 1070 修车
    BZOJ 2654 tree
    BZOJ 3243 向量内积
    1003 NOIP 模拟赛Day2 城市建设
    CF865D Buy Low Sell High
    CF444A DZY Loves Physics
    Luogu 4310 绝世好题
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3424021.html
Copyright © 2011-2022 走看看