我正在尝试编写一个程序来将特定文件上传到localhost。
让我们说如果文件是(test.txt),结果应该是http://localhost:8080/hostProject/test.txt
。
我进行了搜索,发现公共FileUpload
可以帮助我,但我不确定如何完成它。
此处的程序独立于hostProject。
答案 0 :(得分: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());
}
答案 1 :(得分:0)
您必须使用多部分HTTP表单上传文件。 你保存的地方取决于你的服务器端代码,但我个人不会把它保存在你的webapp下。
答案 2 :(得分:0)
FileUpload
基本上是一个特殊用途的HTTP表单处理程序,它对于处理文件上传很有用,但是这个问题还有另外两个部分,即hostProject
servlet和你的客户端。 Servlet 3.0还包括一些内置的多部分处理,因此您可以选择该路由。
如何处理servlet完全取决于您。一些有用的方法是全内存缓存(容易但大小有限,并且不会在重新启动之间保持不变),将文件写入文件系统并使用类似Spring ResourceServlet
之类的东西来提供它们其他磁盘文件,或者将它们放在某个数据存储(也许是MongoDB)中,并使用“文件名”作为密钥再次将它们取出。 Spring的MultipartResolver
可能有助于构建它。
在您的客户端中,您需要发出常规的HTTP POST
请求,就像任何其他HTTP交互一样,并将上传的文件“附加”为多部分实体。
请注意,此功能存在安全风险(您不希望随机用户上传您提供的文件),因此您需要确保在FileUpload
servlet上拥有足够的安全控制权限