Java文件上载验证最佳实践

时间:2012-03-15 05:05:59

标签: java validation gwt file-upload server-side

我正在GWT中实现一个简单的图片上传小部件。在成功上传之前,需要执行一些基本验证,例如:

  1. 尺寸
  2. 文件类型
  3. 进行此验证的最佳位置是什么?
    据我所知,尺寸和类型验证只能在服务器端完成 即servlet(MyUploadServlet扩展HttpServlet)执行文件的实际上传 那是唯一的地方吗?进行此类验证的最佳做法是什么?

    另外,如果我可以获得验证码(图像文件类型和大小),那就太棒了:)

2 个答案:

答案 0 :(得分:1)

验证可以在服务器端更好地完成。 基本上我会建议你进行尺寸验证2步:

1)验证内容长度的HTTP标头。 request.getContentLength()

2)如果标头不可用,则在读取输入流时执行实际大小验证。因此,如果达到限制,您可以抛出异常。

在gwt客户端,您可以验证异常并显示相应的错误。

确定文件类型可能不那么简单。在文件实际上传到服务器上之后,您可以检查文件扩展名或使用特定于文件类型的验证。

答案 1 :(得分:0)

HTML 5对File API提供了不同的支持,这意味着一些浏览器可以在与服务器通信之前为您提供上传文件的大小。如果你可以假设你正在使用的浏览器,你可能想要搜索html 5 file api size的内容,看看你是否能够在你的情况下使用它。