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


     

  • 相关阅读:
    PHP 布尔类型
    php连接到数据库
    php_2
    php_1
    iOS开发之APP导入添加自定义字体
    iOS开发之判断横竖屏
    iOS开发之iPhone手机屏幕尺寸整理
    iOS开发之关闭暗黑模式
    iOS开发之iOS13推送deviceToken处理
    iOS开发之UIView和CALayer的区别
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3424021.html
Copyright © 2020-2023  润新知