安卓上传文件至PHP服务器

前两个月有幸参加一次免费培训,开发了一款小软件。发现AsyncHttpClient还真是好用。

直奔主题,安卓上传文件至PHP服务器:

1.PHP端服务器:

<?php
//链接数据库
include ("config/db.php");

//获取用户id
$userid = $_POST[‘userid‘];

//处理上传文件
$base_path = "upload/";
$fileName=$_FILES[‘file‘][‘name‘];
$name=explode(‘.‘,$fileName);
$userpicads = $base_path .  ‘user_‘.$userid. ‘.‘ .$name[1]; 

/*
返回状态码:
300: 处理成功
301:服务器异常
*/
$status=301;

if (move_uploaded_file ( $_FILES [‘file‘] [‘tmp_name‘], $userpicads )) {
	$status=300;
} else {
	$status=301;
}

//如果保存文件成功,更新数据库
if($status==300)
{
	$sql = "update mh_user set userpicads=‘{$userpicads}‘ where id={$userid}";
	$pdo->exec($sql);
}

//输出返回结果
$ret = array(‘status‘=> $status);
echo json_encode($ret);

?>

2.安卓端添加网络权限

<uses-permission android:name="android.permission.INTERNET" />

  

3.安卓端导入以下jar包(这些很容易就能下载到):

  android-async-http-1.4.7.jar (必须)
  gson-2.1.jar (可选,解析json格式用)
  httpcore-4.4.4.jar(可选,用Android Stutio可能还需要导入这个)

4.安卓主要代码:

int userid = 1;
String username = "HelloWorld";
String filepath = "/mnt/sdcard/Download/mm.jpg";
String uploadUrl = "http://192.168.1.103/test/upload.php";

btn_upload.setOnClickListener(new View.OnClickListener() {

	@Override
	public void onClick(View v) {

		AsyncHttpClient client = new AsyncHttpClient();
		RequestParams params = new RequestParams();

		//添加参数
		params.put("userid", userid);
		params.put("username", username);

		try {
			//添加文件
			params.put("file", new File(filepath));
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}

		client.post(uploadUrl, params, new AsyncHttpResponseHandler() {
			@Override
			public void onSuccess(int i, org.apache.http.Header[] headers, byte[] bytes) {
				try {
					//获取返回内容
					String resp = new String(bytes, "utf-8");

					//在这里处理返回的内容,例如解析json什么的...

				} catch (UnsupportedEncodingException e) {
					e.printStackTrace();
				}
			}

			@Override
			public void onFailure(int i, org.apache.http.Header[] headers, byte[] bytes, Throwable throwable) {
				//在这里处理连接失败的处理...
			}
		});
	}
});

  

本文主要参考:

http://blog.csdn.net/fancylovejava/article/details/13506745

PHP如何重命名上传的文件:

http://zhidao.baidu.com/link?url=lipsDeUjztDw-kwpcWcs7b16_GEer7T2r7wBM3MMzRpBCZuct-wikqv6j5vsZxK39KotlB8qH8bVXOqRCXHosq

Android Studio 可能找不到 org.apache.http.Header,参考:

http://zhidao.baidu.com/link?url=_RM6ndKff2FpUf6i-I97FiyKpnwPsHCg7EgYFXjTJgAhZlLN8DlT55VX02sD3epoEw72BWU2xbWqLN_yfHXBGw0nKxqbctMzSbo51UPePRi

时间: 2024-10-17 07:46:22

安卓上传文件至PHP服务器的相关文章

git 上传文件到远程服务器

当你想要上传文件到git服务器上,需要做一下流程: 一开始走的流程是:1.本地初始化一个git库2.关联远程库 1.本地初始化一个git库 在你要上传的文件夹中打开命令窗口:git init:然后他会自动生成.git文件 2.关联远程库:命令行:git remote add origin xxxxx 3.进入克隆下来的文件夹:cd test2(这里一定要进入文件夹,不然会报很多错误,等下下面有报错的问题) 4.先提交文件 git add .   (这里的  .  是指提交全部文件) 5.ls (

C# 上传文件至远程服务器

C# 上传文件至远程服务器(适用于桌面程序及web程序) 2009-12-30 19:21:28|  分类: C#|举报|字号 订阅 最近几天在玩桌面程序,在这里跟大家共享下如何将本地文件上传到远程服务器上面. 注意,我在这里使用的是WebClient而不是ftp 首先,我们先来定义一个类UpLoadFile,这个类就是文件上传类.代码如下: public void UpLoadFile(string fileNamePath, string uriString, bool IsAutoRena

putty windows上传文件到linux服务器 &amp; 从linux服务器 下载文件到 windows

从putty官网下载putty软件:putty.exepscp.exepsftp.exe等软件 也可以自己下windows安装包putty-0.63-installer.exe 本人直接下载putty-0.63-installer.exe安装包了,然后直接安装 使用pscp方式从windows上传文件到linux服务器 在CMD命令行中进入到putty安装目录 输入pscp 回车 pscp 跟我们平时使用的linux scp命令操作的都是类似的 现在我直接从windows本地上传一个文件到lin

Android端上传文件到Web服务器

本文中主要就Android端上传文件到Web服务器,做出的一个简单的Demo 1.Tomcat上部署的服务端的实现 2.Android端的代码实现 1.Tomcat服务器上面项目的部署与实现 创建一个Web Project 创建FileUploadServlet.java,当然,一下两个重要的Jar包不能够忘记! commons-fileupload-1.2.2.jar commons-io-2.0.1.jar FileUploadServlet.java import java.io.File

sftp方式从windows上传文件到Linux服务器

今天我一直用scp想实现从windows上传文件到Linux服务器,但是鼓捣了半天也没有实现.后来查资料才发现,scp实现文件的上传和下载貌似只能在Linux和Linux之间实现.(欢迎指正不对的地方) 后来开始转用sftp来解决上述问题,其中也是遇到了不少坑,下面说一下比较合理的步骤: 首先声明,我是在Windows上通过xshell5来连接远程服务器的,连接成功后如下图: 然后用sftp连接远程服务器:sftp 192.168.167.178: 再然后,修改本地上传的文件夹路径:先点击这个按

SpringBoot 上传文件到linux服务器 异常java.io.FileNotFoundException: /tmp/tomcat.50898……解决方案

SpringBoot 上传文件到linux服务器报错java.io.FileNotFoundException: /tmp/tomcat.50898-- 报错原因: 解决方法 java.io.IOException: java.io.FileNotFoundException: /tmp/tomcat.5089835798184465073.8081/work/Tomcat/localhost/ROOT/www/server/apache-tomcat-8.5.32/webapps/jxmsto

android上传文件到wamp服务器

1.php server(wamp)部分 建立unload.php页面代码如下 <?php move_uploaded_file($_FILES["file1"]["tmp_name"], "upload/" . $_FILES["file1"]["name"]); echo "存储在: " . "upload/" . $_FILES["file1&q

Linux上F上传文件到FTP服务器

Linux上上传跟Windows上上传不一样,在Windows上测试没问题,但是放到Linux服务器上跑,上传的文件中文显示乱码.解决方案: FtpUtil.java红色标记处 package cn.zto.util; import java.io.ByteArrayInputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOExce

Windows 使用ssh secure file transfer上传文件到linux服务器

SSH Secure Shell Client是SSH命令行控制终端,你应该是用SSH Secure File Transfer Client传输文件.这里只谈论他的使用方法,关于SSH配置你再找其他文章.一.登陆方法你可以在登陆的SSH Secure Shell Client里单击工具栏里(或菜单)的New File Transfer Window,就直接登陆了.也可以单独运行SSH Secure File Transfer Client.登陆非常简单,填写Host Name(你的服务器地址或