加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

android上传图片到PHP的过程详解

发布时间:2020-12-13 02:48:29 所属栏目:PHP教程 来源:网络整理
导读:《android上传图片到PHP的过程详解》要点: 本文介绍了android上传图片到PHP的过程详解,希望对您有用。如果有疑问,可以联系我们。 本日在做上传头像的时候,总是提交连接超时错误,报错信息如下:XXXXXXSokcetTimeOutXXXXXXXX PHP学习 然后本身设置HTTP的超

《android上传图片到PHP的过程详解》要点:
本文介绍了android上传图片到PHP的过程详解,希望对您有用。如果有疑问,可以联系我们。

本日在做上传头像的时候,总是提交连接超时错误,报错信息如下:XXXXXXSokcetTimeOutXXXXXXXXPHP学习

然后本身设置HTTP的超时时间:

代码如下:

[java] view plaincopyprint?
//设置超时时间?
httpclient.setTimeout(20000);?

再building,runing,还是不行....这就怪了,明明好好的,怎么会突然就变成连接超时了呢!又折腾了一阵子后,也跟后台那边的朋友沟通过,他也测试了上传接口,发现没什么问题,就让我本身去折腾去了....
我就郁闷了,看不出原先的代码有什么错误,也没什么法子了,就出最下下策吧,本身搭一个PHP上传图片接口,亲自测试下到底是怎么回事....

1.首先,你得下一个便利快捷的PHP服务器,我这里用了WampServer,百度----下载-----安装-----启动,浏览器输入:http://127.0.0.1 有页面显示,OK了.就这么简单!

2.浏览器输入 : http://本机IP地址??? 回车,?? 发现报错,类似“You don't have permission to access / on this server”? 说明你的WM还没设置,必要进行如下设置:
造成这个问题的原因是Apache 的http.conf内的默认配置是

代码如下:

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

只允许127.0.0.1拜访,点击wampserver图标让后点击Putonline,http.conf内的以上默认配置自动修改为
代码如下:

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

现在localhost可以拜访了.

同样phpMyadmin在localhost下不能正常拜访在127.0.0.1能正常拜访,解决方法:
点击根目录下的alias目录,打开phpmyadmin.conf配置文件,和上面修改http.conf一样把

代码如下:

Deny from all
Allow from 127.0.0.1
修改为
Allow from all

3. 再此输入 : http://本机IP地址??? 回车??? 显示页面??? OK!?? 至于为什么要第二步、第三步呢,我就不说了...留给新人去想想吧! 大神直接无视.....
4.写一个上传图片的PHP文件,当然我一个敲java的孩子一下子怎么可能憋的出来,那怎么办,当然是百度参考别人的了,下面的PHP代码源自网络,亲测没有差错:

[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目录下,我的如下图所示,仅供参考:

6.经过上面几个步骤,PHP端已经搭建好了,现在便是回到android端改改IP地址测试下就oK了,代码段如下:

[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()){ 
      //上传成功,设置图片 
      face.setImageBitmap(bmp); 
      ToastUtils.show(context,"上传成功"); 
    }else{ 
      ToastUtils.show(context,json); 
    } 
     
    myprefs.position().put(0); 
  } 
   
  @Override 
  public void onFailure(int arg0,String arg2,Throwable arg3) { 
    super.onFailure(arg0,arg2,arg3); 
    myprefs.position().put(0); 
        arg3.printStackTrace(); 
    ToastUtils.show(context,R.string.network_unavailable); 
  } 

params.put("attach",uploadImg);? 这里的attach参数是和服务端一一对应的,别乱改....
String url="http://192.168.0.8/upload.php";?? 这个192.168.0.8是我的PHP部署的地址,改成你自己的就行了.


PS:别犯2,用了127.0.0.1??? 想想为啥不克不及用127.0.0.1

到此便是building,runing了.? 发现OK....?? 可以上传,并在www目录下找到upload目录,upload目录下有上传的图片....


7.这就纳闷了.... 我又兴起勇气找了PHP后端,跟他激烈的讨论一番后,发现是服务器坑了爹啊!? 800块一年的服务器.....唉...不说了....

编程之家培训学院每天发布《android上传图片到PHP的过程详解》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读