是这样的,现在分析抓包数据

test.go

package main

import (

"fmt"

"log"

"github.com/gin-gonic/gin"

)

func main() {

r := gin.Default()

// Upload single file

r.MaxMultipartMemory = 8 << 20

r.POST("/upload", func(c *gin.Context) {

// 尝试从请求表单中获取名为file 的文件,返回两个值,分别是 *mutilepart.FileHeader 和 error

// *mutilepart.FileHeader 是一个结构体,包含了文件的元数据,如文件名、文件大小、MIME类型

file, _ := c.FormFile("file")

log.Println(file.Filename)

dst := "./" + file.Filename

//把文件上传到指定了路径 当前是把文件上传到当前目录下

c.SaveUploadedFile(file, dst)

c.String(200, fmt.Sprintf("'%s' upload", file.Filename))

})

r.Run(":8080")

}

启动服务器 go run test.go

上面的这张图详细介绍了起始行、头部字段、空行、消息体都有哪些东邪,以及分析这些字段的意思

下面再上传一个压缩文件

注意哈,可以通过curl 模拟上床数据(不得不说curl 命令真强大) curl -X POST http://localhost:8080/upload -F “file=@/yourpath/main.zip” -H “Content-Type:multipart/form-data” 简单讲一下这些参数

-X POST 请求方式 url -F “file=@xxx/main.zip” 要上传的文件 -H 采用表单编码方式请求数据

使用openssl生成server.key 、server.pem

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server.key -out server.pem req - 请求处理器,用于处理SSL证书的请求。 -x509 - 指定生成一个X.509格式的SSL证书。 -nodes - 指定不对生成的SSL证书进行加密。 -days 365 - 指定证书的有效期为365天。 -newkey rsa:2048 - 创建一个新的2048位的密钥。 -keyout my.key - 指定生成的密钥保存到my.key文件。 -out my.crt - 指定生成的SSL证书保存到my.crt文件

相关文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: