Android上传文件至PHP服务器
16lz
2022-04-05
Android上传文件至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.安卓端添加网络权限:
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) { //在这里处理连接失败的处理... } }); }});
更多相关文章
- Android(安卓)点击两次返回键退出程序
- Android(安卓)Intent原理分析
- android JNI处理图片的例子
- Android(安卓)端如何添加自定义表情
- Fragment沉浸式
- Android访问WCF(下篇)-客户端开发
- android onTouch事件的派发
- 为Android内核添加新驱动,并添加到menuconfig菜单
- androidのMMS短信发送过程(二)