2013-08-28 72 views
-2

我正在尝试编写程序以将特定文件上传到本地主机。如何将文件上传到本地主机

让我们说如果文件是(test.txt),结果应该是http://localhost:8080/hostProject/test.txt。 我做了一个搜索,我发现公用FileUpload可以帮助我,但我不知道如何完成它。 。

这里的程序与hostProject无关。

+0

您是否试图通过Web浏览器或通过独立的Java(可能是Swing)程序上传文件? – chrylis

+0

抱歉,这种歧义。我试图通过独立的swing java程序上传。 – user2714471

回答

0

FileUpload基本上是一个特殊用途的HTTP表单处理程序,它对于处理文件上传很有用,但这个问题还有两个部分,您的服务器和您的客户端。 Servlet 3.0还包含一些内置的多部分处理,因此您可以选择该路线。

你如何处理servlet完全取决于你。一些有用的方法是全部内存缓存(容易但限制大小,并且在重启之间不会持续),将文件写入文件系统并使用像Spring的ResourceServlet之类的东西来提供它们,就像其他任何磁盘一样文件,或将它们放入某个数据存储区(也许是MongoDB),并使用“文件名”作为关键字将其重新取出。春天的MultipartResolver可能会有助于建设。

在您的客户端中,您需要定期发出HTTP POST请求,就像其他任何HTTP交互一样,并将上传的文件“附加”为多部分实体。

请注意,此功能存在安全风险(您不希望随机的人员能够上传您所服务的文件),因此您需要确保您的FileUpload servlet具有足够的安全控制。

0

您可以使用下面的代码选择文件。你必须清楚你想与事后的文件做什么:

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()); 
      } 
+0

这里的问题不在于选择文件,而是将其上传到本地主机。我必须做上传,因为我正在编写的程序只能处理http链接。 – user2714471

0

你必须使用一个多部分HTTP表单上传文件。 您保存的位置取决于您的服务器端代码,但我个人不会将其保存在您的web应用程序下。

相关问题