我从未在JSF中使用过上传功能,但现在我必须这样做。我有几个问题,他们就像“傻瓜”系列问题。所以:
1)将用户的图片登录到DB或服务器的文件系统?
2)如果服务器相对或固定路径或根URL到db / properties以及db的相对部分呢?
3)如果是DB,使用JPA2 + Mysql时的性能如何?否则有任何缺点吗?
4)如果使用服务器,将图像的新上下文添加到server.xml并使用地址www.examble.com/imagesfolder/images.jpg中的图像是否安全?如何避免每个人都可以看到图片的情况?
5)处理上传的最佳方式是什么?我正在使用Primefaces,它是否适合这个目的或其他什么?
6)任何好的教程或示例如何像专业人士那样做:)?
7)如何避免可能存在同名文件的情况?哈希的名字还是?
8)如果(我真的很大)我决定将我的应用程序分享给两台物理服务器,图片路径出现问题会怎样?
9)在我的情况下,我有照片,这是每个人共有的照片和“由登录用户拥有的图片。你将如何实现这个以及为什么如果你知道我使用的是Primefaces,JPA2和Mysql,我有无限的服务器中的空间?10)每个人都非常温暖夏天!!
萨米
答案 0 :(得分:2)
您的大多数问题都是关于在上传后如何处理文件,这是一个设计问题,将取决于软件架构师,团队负责人或最后一个案例。服务器文件系统/数据库文件保存有两个很好的答案:
要处理“7)”和“8)”中描述的问题,您应该使用file server和内容管理系统。它们还提供了比文件存储更多的好处,如搜索,索引等。以下是一些例子:
使用JSF实现文件上传(注意:像专业人士一样,按照专业方法):
尝试这些样本。如果您的编码有问题,最好提出一个新问题。
编辑:我忘记了第4号,感谢提醒。我会按照你的说法添加一个新的上下文,并创建一个Filter来捕获对这个新上下文的请求,并将重定向到默认的URL。有关此问题的更多信息: