JSP:将文件上载到服务器的最佳实践

时间:2012-09-27 22:36:27

标签: java jsp file-upload upload multipartform-data

我使用多部分表单,Apache FileUpload等上传文件。它工作正常。

但是,我想了解在服务器中保存文件时的最佳做法或常用做法,具体如下:

  • 命名服务器中的文件(即:什么名称更好?生成一些UUID,或插入文件关联数据时由db表生成的行ID)
  • 服务器内文件的最佳位置(什么更好?即在Linux服务器中我应该使用哪个文件夹或分区。我是否必须加密上传的文件?)
  • 当我放置一个链接来从浏览器访问文件时:更好的是直接访问,还是使用servlet?

2 个答案:

答案 0 :(得分:1)

  1. 如果你这样做(文件系统中的文件,DB中的元数据),那么文件名的行ID并不是一个坏主意(至少它确保了唯一性)。不幸的是,您必须注意文件系统和数据库是同步的,因此需要仔细编码。
  2. 如果您关心性能文件可以存储在单独的HDD(或NAS)上。请注意,如果文件数量很大(数千),则不应将它们全部放在一个文件夹中,而是将它们分组到子文件夹中,每个子文件夹最多包含数百个文件。如果文件数量很大,它将确保低访问时间。加密的使用应取决于您的业务需求(文件是否包含机密数据?)。
  3. Servlet是一种更好的方式,因为它隐藏了客户端的真实存储详细信息,它更能证明应用程序的未来变化。它还有一些其他好处(例如,您可以实现访问控制,您可以在开箱即用的浏览器/代理中进行缓存等)。如果你使用加密,这是必须的。

答案 1 :(得分:0)

在服务器文件系统操作(丢失权限,不同平台上的不同行为)经常出现问题后,我建议只将文件数据填充为数据库中的BLOB。这样,您无需详细说明唯一文件命名方案,所有敏感数据将位于一个位置。

在这种情况下,您需要一个servlet进行下载,即使访问存储在文件中的数据,IMHO也是更好的方法。