安卓上传文件(绝对可以用)

说明:使用是httpclient+MultipartEntity,因此需要导入包:httpmime-4.1.1这个包非常重要!务必导入!)

写在前面:我只是贴出核心代码,只是记录下我寻找上传功能的过程,我是一个PHPer,最近项目需要编写APP,因此就刚学习Android开发。如果你也正在学习Android可以一起交流一下~~

上代码:(安卓客户端代码)直接贴出关键部分

/*
	 * 图片上传
	 */
	private void httpUpload() {
		HttpClient httpclient = new DefaultHttpClient();
		// 设置通信协议版本
		httpclient.getParams().setParameter(
				CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);

		String pathToOurFile = C.dir.images + File.separator + filename;
		//要上传的图片/mnt/sdcard/images/IMG_20131026_072832.jpg
		Log.w("file", pathToOurFile);
		String urlServer = "http://192.168.1.180/index/upload/index.php";
		HttpPost httppost = new HttpPost(urlServer);
		File file = new File(pathToOurFile);

		MultipartEntity mpEntity = new MultipartEntity(); // 文件传输(这个需要用到httpmime-4.1.1.jar)
		ContentBody cbFile = new FileBody(file);
		StringBody n = null;
		try {
			n = new StringBody("这里可以传递其他内容");
		} catch (UnsupportedEncodingException e1) {
			e1.printStackTrace();
		}
		mpEntity.addPart("name", n);//
		mpEntity.addPart("file", cbFile); // 
		httppost.setEntity(mpEntity);
		try {
			httpclient.execute(httppost);
		} catch (ClientProtocolException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		httpclient.getConnectionManager().shutdown();
		//上传成功,删除临时文件
		file.delete();
		Log.w("result", "上传成功!");
	}

说明:我这里只是为了实现上传功能,随后需要按照服务器端的返回结果进行处理~

服务器端代码:(PHP代码)

        $arrTmp = pathinfo($_FILES['file']['name']);//获取上传文件信息
        $extension = strtolower($arrTmp['extension']);//获取扩展,并转成小写
        $file_newname = time().".".$extension;
        $result = @move_uploaded_file($_FILES['file']['tmp_name'],$file_newname);

演示过程:

保存路径

客户端

图片裁剪以及保存、

发送服务器

上传成功

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏更流畅、简洁的软件开发方式

【自然框架】QuickPager分页控件,新增一种分页方式——伪URL分页(Postback版)

适用场景   先说一下伪URL分页的适用场景。在网站的网页里实现查询功能,如果查询条件比较少的话,还比较好办,把查询条件放到URL里面传递即可。但是如果查...

2376
来自专栏帘卷西风的专栏

linux安装valgrind

转载请注明出处:帘卷西风的专栏(http://blog.csdn.net/ljxfblog)

1191
来自专栏Pythonista

Django之Form功能

Django表单系统中,所有的表单类都作为django.forms.Form的子类创建,包括ModelForm

1552
来自专栏GreenLeaves

WCF系列教程之WCF消息交换模式之单项模式

1、使用WCF单项模式须知 (1)、WCF服务端接受客户端的请求,但是不会对客户端进行回复 (2)、使用单项模式的服务端接口,不能包含ref或者out类型的参数...

1755
来自专栏分布式系统和大数据处理

HttpModule介绍

Http 请求处理流程 和 Http Handler 介绍 这两篇文章里,我们首先了解了Http请求在服务器端的处理流程,随后我们知道Http请求最终会由实现了...

713
来自专栏Create Sun

quartz.net任务调度:源码及使用文档

前言   前段时间把自己封装quartz.net 类库的过程总结到博客园,有网友想要看一下源码,所以就把源码传到github上去了,今天把地址分享给大家,程序中...

3639
来自专栏魏琼东

一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-演示ORM的基本操作

系统回顾           前面的四篇文章我详细的介绍了AgileEAS.NET平台中统一数据访问(UDA)组件的用法,分析了两种数据处理流程的优缺点,以及基...

2295
来自专栏.NET开发那点事

AServer - 基于Asp.net core Kestrel的超迷你http服务器

  AServer是基于ASP.NET Core Kestrel封装的一个超迷你http服务器。它可以集成进你的Core程序里,用来快速的响应Http请求,而不...

1076
来自专栏技术博客

Asp.Net MVC3.0网站统计登录认证的在线人数

  对于一个网站来说,统计在线人数是一个很重要的工作。平时也发现很多的网站论坛等都有在线人数的显示。对于一个网站如果在线人数很多,用户看到了这么个数字也是很了不...

1222
来自专栏智能合约

node.js实现CURL功能

2092

扫码关注云+社区