Update multer (#2433)

This commit is contained in:
David Pedersen
2023-12-17 11:31:38 +00:00
committed by GitHub
parent 6e0955ed9b
commit 72ccde5900
6 changed files with 13 additions and 39 deletions
+3 -19
View File
@@ -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`].