【问题标题】:How to upload file outside web server?如何将文件上传到网络服务器之外?
【发布时间】:2011-02-05 03:49:08
【问题描述】:

我想在 d d 驱动器中将文件上传到 web 服务器之外,但我无法上传它们。

我必须做些什么才能在 Tomcat 6.0 中启用这样的功能?

【问题讨论】:

  • 您尝试了哪些方法,哪些方法无效。 “外部网络服务器”是什么意思。您想将它们存储到不同的位置吗?

标签: java tomcat servlets upload


【解决方案1】:

这应该可以工作。您基本上需要做的就是从请求正文中以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 GuideFAQ

【讨论】:

    最近更新 更多