用http(RFC1867协议)上传文件

    xiaoxiao2021-03-25  102

    一个文件的上传过程

    常用post方式,通过向服务器请求获取SessionId,或者是新的文FileId. 通过http的rfc1867协议,使的其内容部分得以扩充.

    包结构如下

    POST /mxzf HTTP1.1\r\n HOST: mxzf\r\n ..... Content-Type: multipart/form-data; boundary="split_text"\r\n Content-Length: 1234\r\n \r\n --spilt_text\r\n Content-Disposition:form-data;........\r\n \r\n content1.......\r\n --split_text\r\n Content-Disposition:form-data;........\r\n \r\n content2........\r\n --split_text\r\n Content-Disposition:form-data;........\r\n \r\n lastcontent....\r\n --split_text--\r\n 其内容中有个属性“Content-Disposition”,用来描述该资源特征.

    模拟一次请求得到的请求体

    POST/mxzf!upload.html HTTP/1.1   Accept: text/plain, */*   Accept-Language: zh-cn   Host: 192.168.120.10   Content-Type:multipart/form-data;boundary=-----------------------------split   User-Agent: WinHttpClient   Content-Length: 3693   Connection: Keep-Alive   ---------------------------split   Content-Disposition: form-data; name="file"; filename="kn.jpg"   Content-Type: image/jpeg   (此处省略jpeg文件二进制数据...)   ---------------------------split--

    在最开始的

    Content-Type:multipart/form-data;boundary=-----------------------------split,最前方多了2个'-',在数据的结束,也就是末尾,要加上2个'-',否则会出现错误。

    理解不了的看下面的图解:

    ![注意事项](https://img-blog.csdn.net/20170309173637603?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjcwNzA0NDM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
    转载请注明原文地址: https://ju.6miu.com/read-14397.html

    最新回复(0)