我从未使用过 JSF 中的上传功能,但现在我必须使用。我有几个问题,它们就像“傻瓜”系列问题。所以:
1)将用户图片记录到数据库或服务器的文件系统中?
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)对每个人来说都是非常美好又炎热的夏天!!
萨米
最佳答案
您的大多数问题都是关于上传文件后如何处理文件,这是一个设计问题,取决于软件架构师、团队领导,或者在最后一种情况下取决于您自己。对于服务器文件系统/数据库文件保存有两个很好的答案:
要处理“7)”和“8)”中描述的问题,您应该使用 file server和内容管理系统。除了文件存储之外,它们还增加了更多好处,如搜索、索引等。以下是一些示例:
使用 JSF 实现文件上传(注意:要像专业人士一样操作,请遵循专业人士的方法):
- File upload using JSF 2作者:BalusC(JSF 专家)
- PrimeFaces Simple FileUpload
尝试一下这些示例。如果您在编码中遇到问题,最好提出一个新问题。
编辑:我忘记了第四个,谢谢你的提醒。正如您所说,我将添加一个新上下文,并创建一个过滤器来捕获此新上下文的请求并将重定向到默认 URL。
有关此问题的更多信息:
关于jsf - 关于在 JSF 中上传文件的基本问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11270154/