文件图片上传

时间:2022-04-24
本文章向大家介绍文件图片上传,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
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();  
        }  
    }  
}