【发布时间】:2011-02-05 03:49:08
【问题描述】:
我想在 d d 驱动器中将文件上传到 web 服务器之外,但我无法上传它们。
我必须做些什么才能在 Tomcat 6.0 中启用这样的功能?
【问题讨论】:
-
您尝试了哪些方法,哪些方法无效。 “外部网络服务器”是什么意思。您想将它们存储到不同的位置吗?
标签: java tomcat servlets upload
我想在 d d 驱动器中将文件上传到 web 服务器之外,但我无法上传它们。
我必须做些什么才能在 Tomcat 6.0 中启用这样的功能?
【问题讨论】:
标签: java tomcat servlets upload
这应该可以工作。您基本上需要做的就是从请求正文中以InputStream 的形式获取上传的文件。您通常为此使用Apache Commons FileUpload。然后你可以将它写到任何你喜欢的OutputStream,就像通常的Java IO方式,比如FileOutputStream。
假设您实际使用的是需要 Apache Commons IO 作为依赖项的 Apache Commons FileUpload,下面是一个基本示例:
String filename = FilenameUtils.getName(fileItem.getName()); // Important!
File destination = new File("D:/path/to/files", filename);
InputStream input = null;
OutputStream output = null;
try {
input = fileItem.getInputStream();
output = new FileOutputStream(destination);
IOUtils.copy(input, output);
} finally {
IOUtils.closeQuietly(output);
IOUtils.closeQuietly(input);
}
或者,您也可以只使用 Fileupload 的便捷FileItem#write() 方法:
String filename = FilenameUtils.getName(fileItem.getName()); // Important!
File destination = new File("D:/path/to/files", filename);
fileItem.write(destination);
有关更多示例、提示和技巧,请查看 FileUpload User Guide 和 FAQ。
【讨论】: