所以我正在尝试将文件上传到服务器。我正在使用 postman 来测试文件上传,但在 postman 中收到错误“‘multipart/form-data’请求的‘boundary’无效”,HTTP 状态代码为 400。 这是我的代码:
async fn main() {
let paths = Router::new()
.route("/upload", post(upload))
.layer(DefaultBodyLimit::disable())
.layer(RequestBodyLimitLayer::new(250 * 1024 * 1024));
let listener = TcpListener::bind("0.0.0.0:3000").await.unwrap();
axum::serve(listener, paths).await.unwrap();
}
async fn upload(mut files: Multipart) -> impl IntoResponse {
while let Some(field) = files.next_field().await.unwrap() {
let name = field.file_name().unwrap().to_string();
println!("{name}, {}", field.content_type().unwrap());
}
StatusCode::OK
}
在postman中,HTTP请求是一个post请求,正文中包含表单数据。键为
fileupload
,值为 2 个文件。
这个错误是什么意思以及如何解决它?
编辑:Postman HTTP 请求如下所示:
POST /upload HTTP/1.1
Host: localhost:3000
Content-Length: 418
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="fileupload"; filename="1ef9fae3-1302-4760-849c-1b1a73c36d70"
Content-Type: <Content-Type header here>
(data)
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="fileupload"; filename="1ef9facc-6eae-4990-9203-292653b9662f"
Content-Type: <Content-Type header here>
(data)
------WebKitFormBoundary7MA4YWxkTrZu0gW--