码迷,mamicode.com
首页 > Web开发 > 详细

http post form-data时content解析

时间:2018-05-26 15:58:01      阅读:1178      评论:0      收藏:0      [点我收藏+]

标签:enc   data   过程   代码   ref   method   nbsp   isp   存在   

上传文件表单的时候http协议过程

首先在浏览器中采用表单的形式上传文件代码如下

<form action="/api/uploads" method="POST" enctype="multipart/form-data">

    <div class="form-group">

        <input type="file" class="form-control-file" name="file">

        <input type="submit" value="Upload">

    </div>

</form>

由于在http协议中的规定,enctype必须是multipart/form-data,而在file input中的name后续会变为上传的参数,上传的文件名为model.py下面展示在firefox中的请求消息头

 技术分享图片

post的内容如下

 技术分享图片

boundary是用于分割post内容不同文件部分,在内容中我们看到Content-Disposition后面参数中有name以及filename这两个参数就是在input中选择的填写参数,俄日在Content-Type后面就是文件内容。如下图所示分隔符可以分割出不同部分。在flask的request中将参数包裹在其中,传递的所有文件都在request.files中,可以通过request.files[name]来选择不同的file,也可以通过request.files.items()获取一个迭代器。

技术分享图片

表单内容存在文件以及其它数据时post content的内容与上图相似,首先我们来看下面代码

<form action="/api/uploads" method="POST" enctype="multipart/form-data">

    <div class="form-group">

        <input type="file" class="form-control-file" name="file">

        <input type="text" name="t1">

        <input type="text" name="t2">

        <input type="submit" value="Upload">

    </div>

</form>

 

在post content中内容如下

 技术分享图片

表单的每个字段都被单独分割开,在flask的request中form存储了这些name与内容,但文件并不在form中存储,而在request.files中存储。

 

http post form-data时content解析

标签:enc   data   过程   代码   ref   method   nbsp   isp   存在   

原文地址:https://www.cnblogs.com/lee88688/p/9093069.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!