mirror of
https://github.com/tokio-rs/axum.git
synced 2026-08-27 00:00:24 +02:00
Update multer (#2433)
This commit is contained in:
@@ -12,7 +12,7 @@ use axum::{
|
||||
use futures_util::stream::Stream;
|
||||
use http::{
|
||||
header::{HeaderMap, CONTENT_TYPE},
|
||||
HeaderName, HeaderValue, Request, StatusCode,
|
||||
Request, StatusCode,
|
||||
};
|
||||
use std::{
|
||||
error::Error,
|
||||
@@ -115,22 +115,7 @@ impl Multipart {
|
||||
.map_err(MultipartError::from_multer)?;
|
||||
|
||||
if let Some(field) = field {
|
||||
// multer still uses http 0.2 which means we cannot directly expose
|
||||
// `multer::Field::headers`. Instead we have to eagerly convert the headers into http
|
||||
// 1.0
|
||||
//
|
||||
// When the next major version of multer is published we can remove this.
|
||||
let mut headers = HeaderMap::with_capacity(field.headers().len());
|
||||
headers.extend(field.headers().into_iter().map(|(name, value)| {
|
||||
let name = HeaderName::from_bytes(name.as_ref()).unwrap();
|
||||
let value = HeaderValue::from_bytes(value.as_ref()).unwrap();
|
||||
(name, value)
|
||||
}));
|
||||
|
||||
Ok(Some(Field {
|
||||
inner: field,
|
||||
headers,
|
||||
}))
|
||||
Ok(Some(Field { inner: field }))
|
||||
} else {
|
||||
Ok(None)
|
||||
}
|
||||
@@ -149,7 +134,6 @@ impl Multipart {
|
||||
#[derive(Debug)]
|
||||
pub struct Field {
|
||||
inner: multer::Field<'static>,
|
||||
headers: HeaderMap,
|
||||
}
|
||||
|
||||
impl Stream for Field {
|
||||
@@ -184,7 +168,7 @@ impl Field {
|
||||
|
||||
/// Get a map of headers as [`HeaderMap`].
|
||||
pub fn headers(&self) -> &HeaderMap {
|
||||
&self.headers
|
||||
self.inner.headers()
|
||||
}
|
||||
|
||||
/// Get the full data of the field as [`Bytes`].
|
||||
|
||||
Reference in New Issue
Block a user