在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
前两个月有幸参加一次免费培训,开发了一款小软件。发现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 (必须)
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如何重命名上传的文件:
Android Studio 可能找不到 org.apache.http.Header,参考:
|
2022-07-18
2022-08-16
2022-11-06
2022-08-18
2022-08-15
请发表评论