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

前端之家收集整理的这篇文章主要介绍了android上传图片到PHP的过程详解前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

今天在做上传头像的时候,总是提交连接超时错误,报错信息如下:XXXXXXSokcetTimeOutXXXXXXXX

然后自己设置HTTP的超时时间:

代码如下:

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

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

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

代码如下:
只允许127.0.0.1访问,点击wampserver图标让后点击Putonline,http.conf内的以上默认配置自动修改
代码如下:
现在localhost可以访问了。

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

代码如下:
修改为 Allow from all

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

PHP;"> [PHP] view plaincopyprint? 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了,代码段如下:

PHP;"> [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); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } //上传地址 String url=URLconfigs.UploadHeadImage_ukey+myprefs.Ukey().get(); PHP"; 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="PHP">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块一年的服务器。。。。。唉。。。不说了。。。。

猜你在找的PHP相关文章