我在这里读到,无论如何都不应该将文件保存在服务器中,因为它不是可移植的,事务性的并且需要外部参数.但是,鉴于我需要一个针对tomcat(7)的tmp解决方案,并且我对服务器机器有(相对)控制,我想知道:
保存文件的最佳位置是什么?我应该保存/WEB-INF/uploads(建议不要在这里)或某个地方$CATALINA_BASE(见这里)或......?JavaEE 6教程从用户获取路径(:wtf :).注意:该文件不应以任何方式下载.
我应该建立一个配置参数详见这里?我很欣赏一些代码(我宁愿给它一个相对路径 - 所以它至少是Tomcat可移植的) - Part.write()看起来很有希望 - 但显然需要一个绝对的路径
我对这种方法与数据库/ JCR存储库的缺点的阐述感兴趣
不幸的是 ,@ BalusC 的FileServlet专注于下载文件,而他在上传文件时的答案会跳过保存文件的位置.
容易转换为使用DB或JCR实现(如长耳兔)的解决方案将是优选的.
我有一个表单来上传不同类型的文件.我需要根据上传的文件类型提问.例如,如果文件是pdf,我需要询问作者.如果文件是mp3,我需要询问歌曲的标题.
所以:
到目前为止一切都很好.现在如果用户从不回答问题或从不单击保存按钮怎么办?显然我需要删除这个"被遗忘"的文件.
我的想法是将"未经证实的"文件存储在定期清理的一种远程缓冲区中.问题是正确管理这个缓冲区并决定何时清理它.
有没有最佳实践/现有解决方案?什么是最好的方法?