使用MultipartEntity对文字、图片、视频进行综合上传

xiaoxiao2021-02-28  79

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();           }       }   }  
转载请注明原文地址: https://www.6miu.com/read-84290.html

最新回复(0)