php上传手机文件到服务器,安卓上传文件至PHP服务器(示例代码)
前兩個月有幸參加一次免費培訓,開發了一款小軟件。發現AsyncHttpClient還真是好用。
直奔主題,安卓上傳文件至PHP服務器:
1.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) {
//在這里處理連接失敗的處理...
}
});
}
});
本文主要參考:
PHP如何重命名上傳的文件:
Android Studio 可能找不到 org.apache.http.Header,參考:
總結
以上是生活随笔為你收集整理的php上传手机文件到服务器,安卓上传文件至PHP服务器(示例代码)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: css平台HTDC币,是否应该从最新的设
- 下一篇: ibm服务器虚拟化报价,IBM x86