File upload 如何验证文件上载?[播放框架]

File upload 如何验证文件上载?[播放框架],file-upload,playframework,playframework-2.0,javabeans,File Upload,Playframework,Playframework 2.0,Javabeans,我有一个简单的bean,如下所示: 封装模型; 导入play.data.validation.Constraints; 公共类上载 { @约束条件。必需 @限制。最小长度(4) @限制。最大长度(40) 公共字符串名称; @约束条件。必需 公共字符串输入文件; } 形式是这样的: @form(action=routes.Application.submit(),'enctype->“多部分/表单数据”){ @输入文本( 上传表格(“名称”), “\u标签->“名称” ) @输入文件( 上传表单

我有一个简单的bean,如下所示:

封装模型;
导入play.data.validation.Constraints;
公共类上载
{
@约束条件。必需
@限制。最小长度(4)
@限制。最大长度(40)
公共字符串名称;
@约束条件。必需
公共字符串输入文件;
}
形式是这样的:

@form(action=routes.Application.submit(),'enctype->“多部分/表单数据”){
@输入文本(
上传表格(“名称”),
“\u标签->“名称”
)
@输入文件(
上传表单(“输入文件”),
“\u标签->“查询”
)
}
  • 验证inputFile的最佳方法是什么
  • 有没有可能通过注释来实现这一点
  • @必需约束
    根本不起作用

    我希望它被选中,并在大小上增加一些限制。

    使您的表单如下所示:

    
    
    在提交方法中添加以下内容:

    //来自官方文档
    公共静态结果提交(){
    MultipartFormData body=request().body().asMultipartFormData();
    FilePart file=body.getFile(“inputFile”);
    if(inputFile!=null){
    字符串文件名=picture.getFilename();
    字符串contentType=picture.getContentType();
    File File=picture.getFile();
    //方法检查大小
    如果(!validateFileSize){
    返回重定向(routes.Application.index());//文件大小错误
    }
    返回ok(“上传文件”);
    }否则{
    //验证来了
    闪存(“错误”、“缺少文件”);
    返回重定向(routes.Application.index());
    }
    }
    
    将您的表单设置为:

    
    
    在提交方法中添加以下内容:

    //来自官方文档
    公共静态结果提交(){
    MultipartFormData body=request().body().asMultipartFormData();
    FilePart file=body.getFile(“inputFile”);
    if(inputFile!=null){
    字符串文件名=picture.getFilename();
    字符串contentType=picture.getContentType();
    File File=picture.getFile();
    //方法检查大小
    如果(!validateFileSize){
    返回重定向(routes.Application.index());//文件大小错误
    }
    返回ok(“上传文件”);
    }否则{
    //验证来了
    闪存(“错误”、“缺少文件”);
    返回重定向(routes.Application.index());
    }
    }
    
    可能是下面这样的吧

    MultipartFormData body=request().body().asMultipartFormData();
    如果(!body.getFiles().isEmpty()){
    //做你的工作
    }
    
    可能是下面这样的吧

    MultipartFormData body=request().body().asMultipartFormData();
    如果(!body.getFiles().isEmpty()){
    //做你的工作
    }
    
    哦,对不起,我忘了添加:是否有可能通过注释实现这一点?有点不一致,一些验证来自bean中的约束,一些验证来自操作。我认为@required不适用于文件,因为表单对象不存储它只发送文本数据的文件。@AhmedAswani但如果字段是文件类型。不需要工作吗?你是对的,但问题是它是否绑定了?我认为文件输入没有绑定,所以不会被验证。哦,对不起,我忘了补充一点:是否有可能通过注释实现这一点?有点不一致,一些验证来自bean中的约束,一些验证来自操作。我认为@required不适用于文件,因为表单对象不存储它只发送文本数据的文件。@AhmedAswani但如果字段是文件类型。不需要工作吗?你是对的,但问题是它是否绑定了我认为文件输入没有绑定,所以它不会被验证