Grails文件上传 - 如何识别文件和/或内容类型?

Aoi*_*asu 9 grails content-type file-upload file-type

我是Grails初学者,所以请耐心等待我.目前我很难操纵文件上传.据我所知,request.getFile()我可以轻松获取字节流.但在我这样做之前,我想检查以下内容:

  • 正在上传的文件的文件名
  • 正在上传的文件的文件大小
  • 正在上传的文件的内容/文件类型

如何才能做到这一点?在文件上传到服务器之前是否可能?我想阻止上传大文件.

mfl*_*yan 19

所有信息都包含在CommonsMultipartFile您可以将请求参数转换为的对象中.

您可以这样使用它(在您的控制器中)

def uploaded = {
    def CommonsMultipartFile uploadedFile = params.fileInputName
    def contentType = uploadedFile.contentType 
    def fileName = uploadedFile.originalFilename
    def size = uploadedFile.size
}
Run Code Online (Sandbox Code Playgroud)

至于阻止大型文件上传,可以通过在表单中​​添加以下内容来完成:

<INPUT name="fileInputName" type="file" maxlength="100000">
Run Code Online (Sandbox Code Playgroud)

但并非所有浏览器都支持它.另一个限制是容器上载限制(请参阅Tomcat配置或您正在使用的任何容器).

除此之外,您必须检查大小并在控制器中拒绝它.