使用 Iron Params 访问表单上传的文件路径
Access to file path on form upload with Iron Params
我尝试使用 Iron params 获取上传文件的临时路径。我有这个请求处理程序:
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
我想我错过了一些关于类型的基础知识,但我不知道从哪里(重新)开始。
params::Value
is not a params::File
, but an enum that could contain a params::File
.
这应该适用于适当的导入(未经测试):
match req.get_ref::<Params>().unwrap().find(&["file"]) {
Some(&Value::File(ref file)) => {
println!("{:?}", file.path())
}
_ => {
println!("no file");
}
}
我尝试使用 Iron params 获取上传文件的临时路径。我有这个请求处理程序:
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
我想我错过了一些关于类型的基础知识,但我不知道从哪里(重新)开始。
params::Value
is not a params::File
, but an enum that could contain a params::File
.
这应该适用于适当的导入(未经测试):
match req.get_ref::<Params>().unwrap().find(&["file"]) {
Some(&Value::File(ref file)) => {
println!("{:?}", file.path())
}
_ => {
println!("no file");
}
}