`

http-post-upload 格式

阅读更多

目的:发起一个携带文件和字段的http请求,理解http 通过 boundary分割域 实现文件上传功能

 

浏览器:

 

 

客户端发送的请求:

http://dl2.iteye.com/upload/attachment/0124/6600/0e51b48c-9d8f-35b8-ab95-9b0727d0e7c4.png

结论:

http 文件上传,http协议通过定义:boundary=---------------------------7e131a1ade2200 来实现每个字段域直接的分割

针对普通的文本域,比如:username,password等 

 

-----------------------------7e131a1ade2200
Content-Disposition: form-data; name="username"

xinchun.wang
-----------------------------7e131a1ade2200

 

针对文件上传的文本文件格式为:

-----------------------------7e131a1ade2200
Content-Disposition: form-data; name="pics1"; filename="a.txt"
Content-Type: text/plain

com_qunar_mall_gtt,gtt.mall.qunar.com,AFARE
-----------------------------7e131a1ade2200

 

针对图片上传格式同文件:



 

以上是通过wireshark 查看的客户端请求的报文

 

后记:

apache common fileupload 等组件 就是通过把 ---------------------------7e131a1ade2200 \r\n 转换为 二进制数组,然后根据request 返回的InputStream 逐个字节的匹配,以boundary的二进制内容为分割点,逐步解析的。

核心实现类:org.apache.commons.fileupload.MultipartStream

  • 大小: 13.5 KB
  • 大小: 30.8 KB
1
2
分享到:
评论

相关推荐

    Spy-http-post-server-and-client.rar_http upload_post http_spy

    标题 "Spy-http-post-server-and-client.rar_http upload_post http_spy" 涉及的是一个关于HTTP POST上传和监视工具的项目。在这个项目中,开发者或使用者可以利用HTTP POST方法将本地计算机上的特定文件或目录上传...

    jQuery-File-Upload的例子

    下载jQuery-File-Upload-master压缩包,解压后在项目中引入所需的CSS、JS文件,以及jQuery库。 3.2 初始化 通过JavaScript代码初始化jQuery-File-Upload,设置相关参数,例如: ```javascript $('#fileupload')....

    the-vc-_post_http-file-upload.rar_VC post上传文件_http post 上传_post

    在本场景中,我们关注的是使用VC++通过HTTP POST方法实现文件上传的技术。标题和描述提示了我们要讨论的重点,即如何在Visual C++环境下利用HTTP协议的POST请求上传文件。以下是对这个主题的详细解释: 首先,理解...

    前端项目-angular-file-upload.zip

    在解压后的`angular-file-upload-master`文件中,通常包含以下内容: 1. `src/` 目录:源码文件,包括JavaScript文件和样式表,开发者可以根据需要进行定制或引用。 2. `demo/` 目录:示例代码,演示了如何在实际...

    jQuery-File-Upload for asp.net MVC

    3. 创建控制器:在控制器(Controller)中,创建一个处理文件上传的方法,如`[HttpPost] public ActionResult Upload(HttpPostedFileBase[] files)`,对上传的文件进行处理,如保存到服务器、数据库记录等。...

    asp 弹出窗上传--An-Upload无组件上传类

    可能包含了处理POST请求、调用上传类、错误处理和反馈结果等功能。 5. **index.asp**:作为主入口页,index.asp通常展示用户界面,包含触发文件上传的按钮或其他交互元素。它可能使用JavaScript来打开弹出窗口,并...

    oss-h5-upload-js-directs.zip

    "oss-h5-upload-js-directs.zip"这个压缩包包含的资源显然是为了实现这一功能。以下是对这个主题的详细解释: 1. **JavaScript客户端签名直传**: 在OSS中,为了安全考虑,通常不建议直接在客户端使用Access Key...

    vbs-post-upload.vbs

    vbs脚本调用web上传接口模拟post上传文件

    jquery-file-upload案例

    <form id="fileupload" action="uploadServlet" method="POST" enctype="multipart/form-data"> []" data-url="uploadServlet" multiple> ``` 然后,在JavaScript中初始化jQuery File Upload组件,并监听文件上传...

    nginx-upload-module-2.0.tar.gz

    而`nginx-upload-module`是一个第三方模块,它允许用户通过HTTP POST请求上传文件到Nginx服务器。这个模块特别适用于那些希望在后端应用处理文件上传之前,先由Nginx进行临时存储和验证的场景。 在使用`nginx-...

    jQuery-File-Upload-master

    工作原理上,jQuery File Upload使用HTML5的FormData对象来处理文件数据,通过XMLHttpRequest Level 2的PUT或POST方法实现文件的异步上传。对于不支持HTML5的旧版IE浏览器,它会回退到iframe-based transport,以...

    Laravel开发-laravel-tinymce-simple-imageupload

    Route::post('/admin/images/upload', [ImageController::class, 'upload'])->name('image.upload'); ``` 确保在`config/filesystems.php`文件中设置公共存储驱动: ```php 'disks' => [ 'public' => [ 'driver'...

    kinta-php-upload-file_upload_php_源码

    `kinta-php-upload-file_upload_php_源码`这个资源似乎是一个教程,专门针对印尼语("Bahasa Indonesia")用户,讲解如何在PHP中实现文件上传功能。下面将详细讨论PHP文件上传的基本原理、流程以及相关知识点。 1. ...

    用jQuery-File-Upload上传Excel文件(ASP.NET MVC)

    [HttpPost] public ActionResult Upload(HttpPostedFileBase file) { if (file != null && (file.ContentType.Contains("application/vnd.ms-excel") || file.ContentType.Contains("application/vnd....

    multiple-file-upload

    app.post('/upload-url', upload.array('files'), (req, res) => { // req.files 是一个数组,包含了所有上传的文件信息 // 处理文件并返回响应 }); ``` 此外,为了提高用户体验,我们还可能需要使用进度条显示...

    nginx1.16+nginx-upstream-check-module-master+nginx-upload-module

    此外,`nginx-upload-module`还能与后端应用程序集成,例如通过POST请求将上传信息传递给PHP、Java等后端服务,实现文件的存储和处理。 在实际部署中,这三个组件通常一起使用,构建一个具备健康检查和文件上传功能...

    spring-boot-file-upload.zip

    文件上传是HTTP请求的一种类型,通常通过POST请求实现,使用`multipart/form-data`编码类型来发送文件数据。 在Spring Boot应用中,我们可以使用`@Controller`注解来创建一个处理HTTP请求的控制器。然后,使用`@...

    Flex-Java-file-upload.zip_flex

    在选择文件后,FileReference对象可以调用upload()方法,将文件作为POST请求的一部分发送到服务器。 对于Java后端,通常会使用Servlet来接收文件。当Flex应用发起POST请求时,Servlet的doPost()方法会被调用。在这...

    【JavaScript源代码】element-ui中el-upload多文件一次性上传的实现.docx

    axios.post(this.uploadData.action, this.fileData, { headers: {'Content-Type': 'multipart/form-data'} }) .then(response => { // 处理成功响应 }) .catch(error => { // 处理错误 }); ``` 总结起来,实现...

    practice-03-file-upload-vue-page.rar

    综上所述,“practice-03-file-upload-vue-page”项目涵盖了从前端交互、文件处理、HTTP通信到后端服务的全套文件上传流程。通过实践这个项目,开发者可以深入理解文件上传的完整工作流,并掌握相关的技术细节。

Global site tag (gtag.js) - Google Analytics