Доступ к пути к файлу при загрузке формы с помощью Iron Params
Я попытался получить временный путь к загруженному файлу, используя параметры Iron. У меня есть этот обработчик запросов:
fn handler(req: &mut Request) -> IronResult<Response> {
let tmp_file_name = req.get_ref::<Params>().unwrap().find(&["file"]).unwrap();
println!("{:?}", tmp_file_name);
Ok( Response::with( (status::Ok, "Lorem Ipsum.") ) )
}
Это отображает что-то вроде этого:
File { path: "/xxx/yyy", filename: Some("file.txt"), size: 123 }
Но если я попытаюсь получить доступ к пути:
println!("{:?}", tmp_file_name.path());
Он не компилируется:
error: attempted access of field `path` on type `¶ms::Value`,
but no field with that name was found
Я думаю, что пропустил некоторые основы о типе, но я не знаю, с чего (пере) начать.
1 ответ
Решение
params::Value
это не params::File
, но перечисление, которое может содержать params::File
,
Это должно работать с правильным импортом (не проверено):
match req.get_ref::<Params>().unwrap().find(&["file"]) {
Some(&Value::File(ref file)) => {
println!("{:?}", file.path())
}
_ => {
println!("no file");
}
}