Sam*_*Sam 5 multipartform-data go
我有一个简单的多部分表单,可以上传到 Go 应用程序。我想对上传大小设置限制,所以我做了以下操作:
func myHandler(rw http.ResponseWriter, request *http.Request){
request.Body = http.MaxBytesReader(rw, request.Body, 1024)
err := request.ParseMultipartForm(1024)
if err != nil{
// Some response.
}
}
Run Code Online (Sandbox Code Playgroud)
但代码仍在继续执行。我似乎无法向用户提供任何反馈。我宁愿说“您已超出大小限制”,而不是切断连接。这可能吗?
该代码按预期工作。描述http.MaxBytesReader
MaxBytesReader 与 io.LimitReader 类似,但旨在限制传入请求正文的大小。与 io.LimitReader 相比,MaxBytesReader 的结果是 ReadCloser,对于超出限制的 Read 返回非 EOF 错误,并在调用其 Close 方法时关闭底层读取器。
MaxBytesReader 可以防止客户端意外或恶意发送大请求而浪费服务器资源。
您可以io.LimitReader只读取 N 个字节,然后自行处理 HTTP 请求。
| 归档时间: |
|
| 查看次数: |
3103 次 |
| 最近记录: |