Android采取async框架文件上传
页面效果
须要的权限
<uses-permission android:name="android.permission.INTERNET"/>
网络訪问权限;
布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" > <EditText
android:id="@+id/et_url"
android:layout_width="match_parent"
android:layout_height="wrap_content" /> <Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="startUplode"
android:text="@string/hello_world" /> </LinearLayout>
核心代码
package com.examp.uplodefile; import java.io.File;
import java.io.FileNotFoundException; import org.apache.http.Header; import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText; import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.AsyncHttpResponseHandler;
import com.loopj.android.http.RequestParams; public class MainActivity extends Activity { private EditText et_url; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); et_url = (EditText) findViewById(R.id.et_url);
} public void startUplode(View view) {
// 获取上传文件的地址
String filePath = et_url.getText().toString().trim();
// 创建出文件对象
File file = new File(filePath);
// 定义上传的server地址
String path = "http://172.22.64.193:8080/0001AndroidWebService/UplodeFileServlet";
// 推断文件的大小,及是否存在
if (file.exists() && file.length() > 0) {
// 使用开源框架,
//
AsyncHttpClient client = new AsyncHttpClient();
// 上传的參数
RequestParams params = new RequestParams();
try {
// 加入上传的数据
params.put("file", file);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} // Upload a File
// 发送上传的消息,..并处理结果
client.post(path, params, new AsyncHttpResponseHandler() { @Override
public void onSuccess(int statusCode, Header[] headers,
byte[] responseBody) {
System.out.println("==========" + statusCode);
for (int i = 0; i < headers.length; i++) {
System.out.println("&&&&&&" + headers[i]);
}
System.out.println("********" + new String(responseBody));
}
@Override
public void onFailure(int statusCode, Header[] headers,
byte[] responseBody, Throwable error) {
System.out.println("==========" + statusCode);
for (int i = 0; i < headers.length; i++) {
System.out.println("&&&&&&" + headers[i]);
}
System.out.println("********" + new String(responseBody));
System.out.println("--------" + error);
} });
} } }
编写前提是将框架代码已经导入到项目中
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTkzNjE0Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
框架代码下载
http://download.csdn.net/detail/u011936142/7424999
版权声明:本文博主原创文章,博客,未经同意不得转载。
Android采取async框架文件上传的更多相关文章
- ssh框架文件上传下载
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 第二百七十三节,Tornado框架-文件上传
Tornado框架-文件上传 第一.普通表单上传文件 self.request.files["fafafa"] 获取上传文件信息,参数["上传文件框的name名称&quo ...
- SSH,SSM框架文件上传
一.了解文件上传 1.1 什么是文件上传 将本地文件通过流的形式写到服务器上 1.2 文件上传的技术 JspSmartUpload: 其组件是应用jsp进行B/S程序开发过 ...
- Android开发之httpclient文件上传实现
文件上传可能是一个比較耗时的操作,假设为上传操作带上进度提示则能够更好的提高用户体验,最后效果例如以下图: 项目源代码:http://download.csdn.net/detail/shinay/4 ...
- Android Retrofit 2.0文件上传
Android Retrofit 实现(图文上传)文字(参数)和多张图片一起上传 使用Retrofit进行文件上传,肯定离不开Part & PartMap. public interface ...
- tp框架-----文件上传
之前也做过文件上传,现在学了tp,用tp怎么做呢? 第一步:做一个Wenjian控制器: <?php namespace Ceshi\Controller; use Think\Controll ...
- 文件上传—SSM框架文件上传
1.准备上传下载的api组件 <dependency> <groupId>commons-io</groupId> <artifactId>common ...
- tp 框架 -文件上传
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 <?ph ...
- 文件上传—SSH框架文件上传
1.准备上传的api组件 <dependency> <groupId>commons-io</groupId> <artifactId>commons- ...
随机推荐
- Bean-Query 一个把对象转换为Map的Java工具库
刚开源了一个经过完整測试的Java工具类. 地址例如以下: https://github.com/Jimmy-Shi/bean-query 使用说明例如以下: Bean-query Click Her ...
- 使用和制作patch文件
使用和制作patch文件 发表时间: 2007-2-13 20:57 作者: superuser 来源: 迷茫人 字体: 小 中 大 | 打印 原文http://www.linuxsir. ...
- Indiegogo: An International Crowdfunding Platform to Raise Money
Indiegogo: An International Crowdfunding Platform to Raise Money The world's funding platform. Fund ...
- 【Unity 3D】学习笔记三十七:物理引擎——碰撞与休眠
碰撞与休眠 上一篇笔记说过,当给予游戏对象刚体这个组件以后,那么这个组件将存在碰撞的可能性.一旦刚体開始运动,那么系统方法便会监视刚体的碰撞状态.一般刚体的碰撞分为三种:进入碰撞,碰撞中,和碰撞结束. ...
- HTC one/M7电信802d 毒蛇ViperOne2.1.0/高级毒蛇工具/完美root,精简/更多自定义,稳定,流畅ROM
ROM版本 HTC One/M7 802d ROM作者 雪狼团队·大盛 http://weibo.com/DaShengdd Android版本 Android 4.2.2 创建日期 2013.09. ...
- Python使用时间戳
1.将字符串的时间转换为时间戳 方法: a = "2013-10-10 23:40:00" 将其转换为时间数组 importtime timeArray = time.strpti ...
- Java程序猿笔试面试之String1
1.怎样实现字符串的反转比如:"how are you"--->"you are how" public class InverseString { pu ...
- cowboy rest
REST Flowcharts 这章节将通过一些列不同的流程图来介绍REST处理状态机. 一个请求主要有四条路线,一个是方法OPTIONS. 一个是方法GET和HEAD.一个是PUT.POST和PAT ...
- 关于IE打印预览内容显示不全的问题解决
眼下在调整一个页面打印功能的时候,发现多行文本框TextArea在页面显示的时候,多行文本能够正常显示,可是在打印页面的时候.部分内容就被遮挡住了, 苦思冥想不得其解,后来还是请教了美工. 首先查了下 ...
- Lichee(两) 在sun4i_crane该平台下编译
让我们先来回顾一下编译命令 $ cd workdir/lichee $ ./build.sh -p sun4i_crane -k 3.0 lichee文件夹下的build.sh #!/bin/bas ...