Andriod 文件上传 (二) android端UI

很简单的UI。点击按钮然后从图片库中选择图片上传(非主线程)。

andriod 主LoadActivity的代码如下:

public class LoadActivity extends Activity {

	public static final String  TAG_STRING="LoadActivity";
	private  String pathString=null;
	static final int flag_load=4;
	private Button button=null;
	private userUploadService service=new userUploadServiceImpl();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_load);

        button=(Button) this.findViewById(R.id.button1);
        button.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {
				 String status = Environment
                         .getExternalStorageState();
				  if (status.equals(Environment.MEDIA_MOUNTED)) {// 判断是否有SD卡  

				         Intent intent=new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
				         startActivityForResult(intent, flag_load);
				  }

			}
		});
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.load, menu);
        return true;
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    	super.onActivityResult(requestCode, resultCode, data);
    	if(requestCode==flag_load)
    	{
    		if(data==null)
    		{
    			Toast.makeText(this, "你没有选择任何图片", Toast.LENGTH_LONG).show();
    		}
    		else
    		{

    			Uri uri=data.getData();
    			if (uri==null) {
    				Toast.makeText(this, "你没有选择任何图片", Toast.LENGTH_LONG).show();
				}
    			else {

					String path=null;
					String[] pojoStrings={MediaStore.Images.Media.DATA};
					Cursor cursor=getContentResolver().query(uri, pojoStrings, null, null, null);
					if(cursor!=null)
					{

						int col=cursor.getColumnIndexOrThrow(pojoStrings[0]);
						cursor.moveToFirst();
						path=cursor.getString(col);
						cursor.close();
					}
					if(path==null)
					{
						Toast.makeText(this, "未获得图片路径", Toast.LENGTH_LONG).show();
					}
					else {
						Toast.makeText(this, "图片路径为"+path, Toast.LENGTH_LONG).show();
						pathString=path;
						new AlertDialog.Builder(this)
						               .setTitle("提示")
						               .setMessage("你要选择这张图片上传么?")
					                   .setPositiveButton("确定",new DialogInterface.OnClickListener() {

										@Override
										public void onClick(DialogInterface dialog, int which) {
											doUpload();

										}

									} ).create().show();

					}
				}

    		}
    	}

    }
    private void doUpload() {

		new Thread(new Runnable() {

			@Override
			public void run() {
				try {
					InputStream in=new FileInputStream(new File(pathString));
					Map<String, String>data=new HashMap<String, String>();
					data.put("Name", "liuming");
					data.put("Gender", "男");

					final String retString=service.userUpload(in, data,pathString);

					Log.d(TAG_STRING, retString);
				} catch (Exception e) {
					e.printStackTrace();
//					runOnUiThread(new Runnable() {
//						public void run() {
//							Toast.makeText(LoadActivity.this, "上传更新出错", Toast.LENGTH_LONG).show();
//						}
//					});
				}

			}
		}).start();
	}
}
<span style="font-family: Arial, Helvetica, sans-serif;">service.userUpload(in, data,pathString)</span>

为处理上传逻辑的接口类实现。

传送门:点击打开链接

时间: 2024-10-12 11:05:50

Andriod 文件上传 (二) android端UI的相关文章

android批量文件上传(android批量图片上传)

项目中多处用到文件批量上传功能,今天正好解决了此问题,在此写出来,以便日后借鉴. 首先,以下架构下的批量文件上传可能会失败或者不会成功: 1.android客户端+springMVC服务端:服务端采用org.springframework.web.multipart.MultipartHttpServletRequest作为批量上传接收类,这种搭配下的批量文件上传会失败,最终服务端只会接受到一个文件,即只会接受到第一个文件.可能因为MultipartHttpServletRequest对serv

IOS 多文件上传 Java web端(后台) 使用List&lt;MultipartFile&gt; 接收出现的问题

先上正确的示例: 主要是设置我们的request的content-type为multipart/form-data NSDictionary *param = @{@"assignee" :self.userId, @"projectName" :itemName.text, @"proceedingName":Name.text, @"content" :content.text, @"urgency"

用php实现文件上传二法

PHP(PHP培训 php教程 )(Hypertext Preprocessor)是一种 HTML 内嵌式的语言 (类似 IIS 上的ASP).而 PHP 独特的语法混合了 C.Java.Perl 以及 PHP 式的新语法.它可以比 CGI 或者 Perl&nb sp;更快速的执行动态网页.除此之外,用 PHP 写出来的 Web 后端CGI 程序,可以很轻易的移植到不同的系统平台上. 我们在做网站时,需要访问者的参于才能将网站建设得更加引人注目,这就要求我们从访问者那里得到文章.图片等.因此,文

JavaWeb(实现文件上传)(二)

上文中提到了使用servelt服务器读取到浏览器上保存到文件,并将它保存到本地的方法. 首先解决问题一: G:\eclipse\eclipse\eclipse\worksapceeeeeeee\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\webtest\upload 项目的上传的路径是否可以更改?如何更改? 在server服务器中 ①移除所有项目 ②启动server服务器 ③右键tomcat服务器 选择open 在

文件上传,服务端压缩文件方法,重点是png与gif图片的压缩,保证了透明度与动画

1 /// <summary> 2 /// 上传文件帮助类 3 /// </summary> 4 public class ImageUploadHelper 5 { 6 7 #region SaveVideoFirstImg 根据视频路径生成视频对应的图片 8 /// <summary> 9 /// 根据视频路径生成视频对应的图片 10 /// </summary> 11 /// <param name="videoUrl">

android webview type=file文件上传,安卓端代码

http://stackoverflow.com/questions/5907369/file-upload-in-webview http://blog.csdn.net/longlingli/article/details/16946047 1 package com.example.cairh_sjkh_it; 2 3 4 import android.app.Activity; 5 import android.app.AlertDialog; 6 import android.app.

文件上传简单服务端和客户端 Java 实现

背景 楼主最近很悲惨,下载了 Android 的源码,然后 mac 的硬盘空间就没了,而且编译 Android 源码需要将创建一个大小写不敏感的分区,所以需要将源码存在别的地方,最初是使用的硬盘,但是失败了(硬盘用的 exfat 格式), 后来用云盘,笔记,QQ 都不行,要么文件过多不给传,要么要收费,总之就是不行,正当踌躇之际,想起了一句老话,'自己动手,丰衣足食', 所以萌生了自己写个工具的念头,当然,给自己用的,不需要写的那么好,但是写的过程中出现了一些小问题,所以写这篇博客记录一下. 问

文件上传那些事儿

最近M端项目中涉及到图片上传功能,现把项目中遇到的一些问题及解决办法分享如下,与各位共同探讨: PS:文章已同步至个人博客 一.相关需求: 1. 客户端上限10M2. 服务器端上限2M3. 文件过滤4. 显示上传进度5. 异步上传6. 多文件上传 二.需求分析: 1. 实现2,可使用canvas在前端实现压缩(base64):2. 实1.3,可采用file.size及/image/.test(file.type)过滤:3. 实现4,使用XHR2实现上传,添加进度时间监控,xhr.upload.a

引用开源框架通过AsyncHttpClient进行文件上传

一.步骤: 1.添加权限(访问网络权限和读写权限) 2.获取上传文件路径并判断是否为空 3.若不为空,创建异步请求对象 4.创建上传文件路径 5.执行post请求(指定url路径,封装上传参数,新建AsyncHttpResponseHandler方法) 二.查看参考文档 三.实例项目解析 运行效果如下:       在本地文件夹中查看是否获取到图片,如下图显示 重点代码:均有详细解析,请认真查看注释 1.在AndroidManifest.xml中添加权限 <uses-permission and