我正在尝试编写程序以将特定文件上传到本地主机。如何将文件上传到本地主机
让我们说如果文件是(test.txt),结果应该是http://localhost:8080/hostProject/test.txt
。 我做了一个搜索,我发现公用FileUpload
可以帮助我,但我不知道如何完成它。 。
这里的程序与hostProject无关。
我正在尝试编写程序以将特定文件上传到本地主机。如何将文件上传到本地主机
让我们说如果文件是(test.txt),结果应该是http://localhost:8080/hostProject/test.txt
。 我做了一个搜索,我发现公用FileUpload
可以帮助我,但我不知道如何完成它。 。
这里的程序与hostProject无关。
FileUpload
基本上是一个特殊用途的HTTP表单处理程序,它对于处理文件上传很有用,但这个问题还有两个部分,您的服务器和您的客户端。 Servlet 3.0还包含一些内置的多部分处理,因此您可以选择该路线。
你如何处理servlet完全取决于你。一些有用的方法是全部内存缓存(容易但限制大小,并且在重启之间不会持续),将文件写入文件系统并使用像Spring的ResourceServlet
之类的东西来提供它们,就像其他任何磁盘一样文件,或将它们放入某个数据存储区(也许是MongoDB),并使用“文件名”作为关键字将其重新取出。春天的MultipartResolver
可能会有助于建设。
在您的客户端中,您需要定期发出HTTP POST
请求,就像其他任何HTTP交互一样,并将上传的文件“附加”为多部分实体。
请注意,此功能存在安全风险(您不希望随机的人员能够上传您所服务的文件),因此您需要确保您的FileUpload
servlet具有足够的安全控制。
您可以使用下面的代码选择文件。你必须清楚你想与事后的文件做什么:
JFileChooser c = new JFileChooser();
int rVal = c.showOpenDialog(new JPanel());
if (rVal == JFileChooser.APPROVE_OPTION) {
inputFile = c.getSelectedFile();
System.out.println("File Selected : " + inputFile.getName());
}
这里的问题不在于选择文件,而是将其上传到本地主机。我必须做上传,因为我正在编写的程序只能处理http链接。 – user2714471
你必须使用一个多部分HTTP表单上传文件。 您保存的位置取决于您的服务器端代码,但我个人不会将其保存在您的web应用程序下。
您是否试图通过Web浏览器或通过独立的Java(可能是Swing)程序上传文件? – chrylis
抱歉,这种歧义。我试图通过独立的swing java程序上传。 – user2714471