野人学Android第二弹——图片上传到服务器的基础原理

来源:互联网 发布:做照片的软件 编辑:程序博客网 时间:2024/05/16 05:04

工欲善其事必先利其器,在进行代码编写之前,来研究下手机客户端是如何将图片上传到服务器端的吧。


图片也是文件的一种,其上传的协议是基于HTTP的,所以来看下普通网页上传图片的时候,其HTTP发生了什么变化。


我用php新建了一个具有上传图片功能的网页,并且在Chrome浏览器中运行,进行图片上传。利用Chrome的开发者工具进行调试,出现了上面的内容。Headers的内容有点多,我将重点用红圈画了出来。

第一个红圈中,记住boundary后面的一串字符,这是Chrome浏览器的字段分隔符,是不同上传内容之间的分隔符。不同的浏览器,其分隔符是不一样的。Request Headers中的内容是基本信息,其中红圈内的内容是比较重要的。

第二个红圈中,Request Payload的内容就是要上传的文件内容。“----WebKitFormBoundarySj2Wjtn2OCo0XNMl”中间的内容就是我上传的文件,可以看到文件的类型,以及filename等信息,其中"name"在服务器端接收文件的时候,是比较重要的,这里先记住。


Android的客户端上传图片的功能是依据上面的原理实现的,构建一个HTTP的header,发送到服务器,然后通过服务器端的接收,实现图片的上传。


图片上传的原理就这么简单,大家心里有个数就行了。下一篇博文,就具体的功能实现,进行代码讲解。其难点就在于Android端的headers信息流的构建,以及服务器(php)的文件接收。

0 0