java如何最好地配置用户上传支持文件的上传位置
问题:我的基于java的软件产品具有将支持文件创建为zip文件的功能,如果用户有问题,我会要求他们向我发送电子邮件或使用dropbox之类的工具上载文件。问题是,支持文件通常太大,无法通过电子邮件发送,而且对于某些用户来说,使用dropbox之类的工具很困难
我有一个支持ftp的服务器(运行ApacheTomcat),因此我可以让用户简单地上传文件,但它需要用户名和密码。在应用程序中嵌入用户名和密码肯定不是一个好主意,也许我可以配置一个不需要用户名/密码的位置,但是如何保护用户数据不受其他用户的影响
上传支持文件是许多应用程序的标准行为,但我不清楚如何最好地实现
# 1 楼答案
简而言之
您想创建一个密码保护目录,供用户通过ftp上传内容
有一篇关于this site的好文章
我在这里引用基本步骤
还有一些例子
我与他们没有任何关系
# 2 楼答案
你的用户只需要上传一个支持文件,他们不需要(你也不希望他们)在上传后查看它,更不用说其他用户发送的其他文件了。所以我建议不要使用FTP
相反,您可以在Tomcat中部署一个简单的应用程序,使用一个简单的servlet来接受通过HTTP POST上传的文件Here is a great answer这解释了如何开发这样一个servlet(忽略不适用于您的“简介”段落,但阅读其余部分)。servlet只需要回复“支持文件上传,票证号12345,谢谢”。servlet应该受到保护,最低限度是只接受上载以及与应用程序一起分发的令牌
在这个servlet中,您需要将文件保存在适当的位置here is another detailed answer(由同一作者)来决定。在您的情况下,最简单的方法是将其保存在Tomcat不提供服务的位置,这样只有您可以去&;使用SSH在服务器上收集它们。或者,您可以将文件保存到受保护的位置,以便您可以查看&;下载文件,但不下载你的用户(所以你只需要一个密码,对你来说,不是你的用户)
假设servlet 3.1需要Tomcat 8的工作示例,如果您在较旧的Tomcat版本上需要,请参阅链接答案以了解详细信息:
^{} 是一种将上传的部分写入磁盘的方便方法
在客户端,您可以使用Commons HttpClient上传文件