激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - PHP教程 - android上傳圖片到PHP的過程詳解

android上傳圖片到PHP的過程詳解

2020-11-15 21:28caiwenfeng_for_23 PHP教程

這篇文章主要介紹了android上傳圖片到PHP的過程詳解,需要的朋友可以參考下

今天在做上傳頭像的時(shí)候,總是提交連接超時(shí)錯(cuò)誤,報(bào)錯(cuò)信息如下:XXXXXXSokcetTimeOutXXXXXXXX

然后自己設(shè)置HTTP的超時(shí)時(shí)間:

復(fù)制代碼 代碼如下:

[java] view plaincopyprint?
//設(shè)置超時(shí)時(shí)間 
httpclient.setTimeout(20000); 

 

再building,runing,還是不行。。。。這就怪了,明明好好的,怎么會(huì)突然就變成連接超時(shí)了呢!又折騰了一陣子后,也跟后臺(tái)那邊的朋友溝通過,他也測(cè)試了上傳接口,發(fā)現(xiàn)沒什么問題,就讓我自己去折騰去了。。。。
我就郁悶了,看不出原先的代碼有什么錯(cuò)誤,也沒什么法子了,就出最下下策吧,自己搭一個(gè)PHP上傳圖片接口,親自測(cè)試下到底是怎么回事。。。。

1.首先,你得下一個(gè)方便快捷的PHP服務(wù)器,我這里用了WampServer,百度----下載-----安裝-----啟動(dòng),瀏覽器輸入:http://127.0.0.1 有頁面顯示,OK了。就這么簡(jiǎn)單!

2.瀏覽器輸入 : http://本機(jī)IP地址    回車,   發(fā)現(xiàn)報(bào)錯(cuò),類似“You don't have permission to access / on this server”  說明你的WM還沒設(shè)置,需要進(jìn)行如下設(shè)置:
造成這個(gè)問題的原因是Apache 的http.conf內(nèi)的默認(rèn)配置是

復(fù)制代碼 代碼如下:

# onlineoffline tag - don't remove
Order Deny,Allow
Deny from all
Allow from 127.0.0.1


只允許127.0.0.1訪問,點(diǎn)擊wampserver圖標(biāo)讓后點(diǎn)擊Putonline,http.conf內(nèi)的以上默認(rèn)配置自動(dòng)修改為

復(fù)制代碼 代碼如下:

# onlineoffline tag - don't remove
Order Allow,Deny
Allow from all


現(xiàn)在localhost可以訪問了。

 

同樣phpMyadmin在localhost下不能正常訪問在127.0.0.1能正常訪問,解決方法:
點(diǎn)擊根目錄下的alias目錄,打開phpmyadmin.conf配置文件,和上面修改http.conf一樣把

復(fù)制代碼 代碼如下:

Deny from all
Allow from 127.0.0.1
修改為
Allow from all

 

3. 再此輸入 : http://本機(jī)IP地址    回車    顯示頁面    OK!   至于為什么要第二步、第三步呢,我就不說了。。。留給新人去想想吧! 大神直接無視。。。。。
4.寫一個(gè)上傳圖片的PHP文件,當(dāng)然我一個(gè)敲java的孩子一下子怎么可能憋的出來,那怎么辦,當(dāng)然是百度參考別人的了,下面的PHP代碼源自網(wǎng)絡(luò),親測(cè)沒有錯(cuò)誤:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[php] view plaincopyprint?
<?php
$base_path = "./upload/"; //存放目錄
if(!is_dir($base_path)){
  mkdir($base_path,0777,true);
}
$target_path = $base_path . basename ( $_FILES ['attach'] ['name'] );
if (move_uploaded_file ( $_FILES ['attach'] ['tmp_name'], $target_path )) {
  $array = array (
      "status" => true,
      "msg" => $_FILES ['attach'] ['name'
  );
  echo json_encode ( $array );
} else {
  $array = array (
      "status" => false,
      "msg" => "There was an error uploading the file, please try again!" . $_FILES ['attach'] ['error'
  );
  echo json_encode ( $array );
}
?>

5.將上面的php文件放在WM安裝目錄下的www目錄下,我的如下圖所示,僅供參考:

android上傳圖片到PHP的過程詳解

6.經(jīng)過上面幾個(gè)步驟,PHP端已經(jīng)搭建好了,現(xiàn)在就是回到android端改改IP地址測(cè)試下就oK了,代碼段如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
[java] view plaincopyprint?
   //HTTP上傳圖片
RequestParams params = new RequestParams();
try {
  //將壓縮后的bitmap保存為圖片文件
  String saveImgPath=getSD_Path()+"/saveimg.png";
  File saveimg=new File(saveImgPath);
  FileOutputStream fos = new FileOutputStream(saveimg);
  bmp.compress(Bitmap.CompressFormat.PNG, 100, fos);
  fos.flush();
  fos.close();
  //上傳壓縮后的文件,大約100k左右
  File uploadImg=new File(saveImgPath);
  <span style="color:#ff0000;">params.put("attach", uploadImg);</span>
} catch (FileNotFoundException e) {
  e.printStackTrace();
} catch (IOException e) {
  e.printStackTrace();
}
//上傳地址
    String url=URLConfigs.UploadHeadImage_ukey+myprefs.Ukey().get();
<span style="color:#ff0000;">String url="http://192.168.0.8/upload.php";</span>
    LogUtil.e(TAG, "upload img url :"+url);
AsyncHttpUtil.post_loading(context,url, params, new MyTextHttpResponseHandler() {
  @Override
  public void onSuccess(int status, Header[] arg1, String json) {
    super.onSuccess(status, arg1, json);
    LogUtil.e(TAG, "上傳圖片 json :"+json);
    RespondBaseEntity entity=GsonUtil.GetFromJson(json, RespondBaseEntity.class);
    if(entity.isStatus()){
      //上傳成功,設(shè)置圖片
      face.setImageBitmap(bmp);
      ToastUtils.show(context, "上傳成功");
    }else{
      ToastUtils.show(context, json);
    }
     
    myprefs.position().put(0);
  }
   
  @Override
  public void onFailure(int arg0, Header[] arg1, String arg2, Throwable arg3) {
    super.onFailure(arg0, arg1, arg2, arg3);
    myprefs.position().put(0);
        arg3.printStackTrace();
    ToastUtils.show(context, R.string.network_unavailable);
  }

params.put("attach", uploadImg);  這里的attach參數(shù)是和服務(wù)端一一對(duì)應(yīng)的,別亂改。。。。
String url="http://192.168.0.8/upload.php";   這個(gè)192.168.0.8是我的PHP部署的地址,改成你自己的就行了。


PS:別犯2,用了127.0.0.1    想想為啥不能用127.0.0.1

到此就是building,runing了。  發(fā)現(xiàn)OK。。。。   可以上傳,并在www目錄下找到upload目錄,upload目錄下有上傳的圖片。。。。

android上傳圖片到PHP的過程詳解


7.這就納悶了。。。。 我又鼓起勇氣找了PHP后端,跟他激烈的討論一番后,發(fā)現(xiàn)是服務(wù)器坑了爹??!  800塊一年的服務(wù)器。。。。。唉。。。不說了。。。。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产91久久久久 | 香蕉久草视频 | 最新午夜综合福利视频 | 依人九九宗合九九九 | 亚洲第一成人久久网站 | 国产在线精品一区二区三区不卡 | 天天操天天插 | 天天都色视频 | japanesexxxxxxxhd| 精品国产一级毛片 | 午夜网站视频 | 国产福利不卡一区二区三区 | 99精品国产视频 | h色在线观看 | 国产小视频在线观看 | 最新在线中文字幕 | 日日狠狠久久 | 精品国产一区二区久久 | 国产亚洲欧美在线视频 | 99在线热播精品免费 | 久久免费综合视频 | av在线日韩 | 色蜜桃av | 免费久久久久久 | 久久久久久久久日本理论电影 | 孕妇体内谢精满日本电影 | 国产成人观看 | 亚洲成人免费网站 | 黄污网址| 爱性久久久久久久 | 91免费视频版 | 日韩精品中文字幕在线观看 | 精品三级内地国产在线观看 | 欧美1| 黄污网站在线观看 | 97青青草视频 | 粉嫩粉嫩一区二区三区在线播放 | 91成人午夜性a一级毛片 | 欧美性生活xxxxx | 成年人小视频在线观看 | 国产一级一级片 |