mirror of
https://github.com/actix/examples
synced 2025-02-20 08:20:32 +01:00
Fixed possible panic in multipart example (#276)
* Fixed possible panic * Fixed possible panic in multipart-async-std
This commit is contained in:
parent
7eaa87f4f1
commit
5320117bca
@ -1,12 +1,11 @@
|
|||||||
use actix_multipart::Multipart;
|
use actix_multipart::Multipart;
|
||||||
use actix_web::{middleware, web, App, Error, HttpResponse, HttpServer};
|
use actix_web::{middleware, web, App, Error, HttpResponse, HttpServer};
|
||||||
use async_std::prelude::*;
|
use async_std::prelude::*;
|
||||||
use futures::StreamExt;
|
use futures::{StreamExt, TryStreamExt};
|
||||||
|
|
||||||
async fn save_file(mut payload: Multipart) -> Result<HttpResponse, Error> {
|
async fn save_file(mut payload: Multipart) -> Result<HttpResponse, Error> {
|
||||||
// iterate over multipart stream
|
// iterate over multipart stream
|
||||||
while let Some(item) = payload.next().await {
|
while let Ok(Some(mut field)) = payload.try_next().await {
|
||||||
let mut field = item?;
|
|
||||||
let content_type = field
|
let content_type = field
|
||||||
.content_disposition()
|
.content_disposition()
|
||||||
.ok_or_else(|| actix_web::error::ParseError::Incomplete)?;
|
.ok_or_else(|| actix_web::error::ParseError::Incomplete)?;
|
||||||
|
@ -2,12 +2,11 @@ use std::io::Write;
|
|||||||
|
|
||||||
use actix_multipart::Multipart;
|
use actix_multipart::Multipart;
|
||||||
use actix_web::{middleware, web, App, Error, HttpResponse, HttpServer};
|
use actix_web::{middleware, web, App, Error, HttpResponse, HttpServer};
|
||||||
use futures::StreamExt;
|
use futures::{StreamExt, TryStreamExt};
|
||||||
|
|
||||||
async fn save_file(mut payload: Multipart) -> Result<HttpResponse, Error> {
|
async fn save_file(mut payload: Multipart) -> Result<HttpResponse, Error> {
|
||||||
// iterate over multipart stream
|
// iterate over multipart stream
|
||||||
while let Some(item) = payload.next().await {
|
while let Ok(Some(mut field)) = payload.try_next().await {
|
||||||
let mut field = item?;
|
|
||||||
let content_type = field.content_disposition().unwrap();
|
let content_type = field.content_disposition().unwrap();
|
||||||
let filename = content_type.get_filename().unwrap();
|
let filename = content_type.get_filename().unwrap();
|
||||||
let filepath = format!("./tmp/{}", filename);
|
let filepath = format!("./tmp/{}", filename);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user