文件图片上传

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Android干货

关于Activity销毁,而绘制UI的子线程未销毁出现的问题

37960
来自专栏上善若水

002android初级篇之ViewPager及PagerSlidingTabStrip listview的使用

listView是一个可以用来显示视图列表的控件。 它使用适配器来为之提供数据和资源。

14430
来自专栏分享达人秀

自定义ArrayAdapter

ListView用起来还是比较简单的,也是Android应用程序中最重要的一个组件,但其他ListView可以随你所愿,能够完成很多想要的精美列表,而这...

24290
来自专栏函数式编程语言及工具

Akka(31): Http:High-Level-Api,Route rejection handling

   Route 是Akka-http routing DSL的核心部分,使用户能比较方便的从http-server的角度筛选http-request、进行se...

26770
来自专栏酷玩时刻

Retrofit2+Rxjava+MVP 实践

此博文根据前面两篇文章 Android MVP 架构初试 Android MVP 架构封装 再结合主流框架Retrofit2+Rxjava来个实践(实现聚合网...

42240
来自专栏分享达人秀

完善RecyclerView,添加首尾视图

在之前学习ListView的时候,有学习过如何给ListView添加列表头和列表尾。但是通过近几期的学习,发现RecyclerView是一个比ListV...

26080
来自专栏移动端开发

Android学习--RecyclerView

       前面一篇总结了ListView,在这篇我们总结一些这个RecyclerView,我们就从最基本的开始,安卓团队是将RecyclerView定义在s...

245100
来自专栏Android开发指南

2.抽取代码(BaseActivity)

36780
来自专栏一个会写诗的程序员的博客

关于Webview如何自动登录保存登录信息

11030
来自专栏KK的小酒馆

Adapter与ListView的简单应用(下)Android应用界面开发

1.继续分析Adapter的常用类 上一篇文章使用了ArrayAdapte制作了一个只由简单的文字组成的ListView,那ArrayAdapter是不是只有...

10820

扫码关注云+社区

领取腾讯云代金券