【问题标题】:Best practice to save the uploaded images保存上传图片的最佳实践
【发布时间】:2013-07-09 08:13:19
【问题描述】:

保存上传的图片的最佳做法是什么?假设我有一个表单,每个表单都有一个 ID。用户可以在一个表单上上传多个图像。我想做的是:

WebContent
 |-- META-INF
 |-- WEB-INF
 |-- files
 |    |-- images
 |    |    |-- Form1
 |    |    |    `--Image1.jpg
 |    |    |    `--Image2.jpg
 |    |    |    `--...
 |    |    |-- Form2
 |    |    |    `--Image1.jpg
 |    |    |    `--Image2.jpg
 |    |    |    `--...
 :

Form1Form2 是一个文件夹。当用户提交表单时,该文件夹会自动在服务器上创建。这样做是个好习惯吗?谢谢。

【问题讨论】:

标签: java jsf save mkdir


【解决方案1】:

一个重要的最佳实践是将应用程序本身与用户数据分开。因此,请确保将图像存储在 WebContent 之外的文件系统上。重新部署应用程序可能会删除 WebContent 目录。它还会删除非您意图的用户内容。

另一个最佳做法是使文件的位置可配置。您不想对其进行硬编码。例如,使用 URL 资源。

文件目录的结构是有意义的。您可能需要文件下的另一个用户特定目录。

【讨论】:

    【解决方案2】:

    我不认为这种方法有任何问题,您是否考虑过多个用户会发生什么?他们最终会覆盖彼此的图像吗?我的建议是在某处使用 UserID,作为目录或附加到文件名。

    通常,假设您要在 AWS 之类的云中部署,您会将所有文件夹转移到他们的 S3 技术上,而不是让它们位于您的 WebContent 中。

    【讨论】:

    • 很好..实际上每个表单都有自己的ID,并且根据表单的ID在不同的文件夹名称上分开,因此最终不会覆盖彼此的图像。 ;)
    【解决方案3】:

    您是否正在等待大量图像? 如果是,您应该考虑将图像分成子文件夹,因为如果一个文件夹中有很多文件,文件系统会变慢。

    【讨论】:

    • 现在这一切都取决于实际的文件系统。
    • 应该有多个文件夹包含图像,因为我说过它应该根据表单的 ID 保存在单独的文件夹中。 :)
    猜你喜欢
    • 2019-03-04
    • 1970-01-01
    • 1970-01-01
    • 2013-06-26
    • 2010-10-18
    • 2023-02-19
    • 2012-05-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多