• 使用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();
    		}
    	}
    }
    


     

  • 相关阅读:
    Java8中的LocalDateTime工具类
    纳德拉再造微软:市值如何重回第一阵营(思维确实变了,不再是以windows为中心,拥抱其它各种平台,敢在主战场之外找到适合自己的新战场)
    马化腾,直接把360做特了!(人从一生下来牙牙学语开始,就在模仿,关键在于在已有的基础上进行改进,提高用户体验!)
    RISC-V首度被我国列入扶持对象,上海已成RISC-V重要“据点”
    Oracle高水位线
    oracle优化:避免全表扫描
    oracle中in和exists的区别
    分库、分表
    missing required source folder
    varnish页面缓存服务
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3424021.html
Copyright © 2020-2023  润新知