2010-04-07 66 views
0

我想上傳文件像在dd驅動器中的web服務器到servlet中,但我無法上傳它們。如何在Web服務器外部上傳文件?

我需要做些什麼才能在Tomcat 6.0中啓用這樣的功能?

+2

你有什麼試過,什麼不行。 「外部網絡服務器」是什麼意思?你想將它們存儲到不同的位置? – Bozho 2010-04-07 09:32:25

回答

2

這應該只是工作。您基本上需要做的就是從請求主體獲取InputStream的上傳文件。您通常使用Apache Commons FileUpload。然後,您可以將其寫入任何您喜歡通常的Java IO方式的OutputStream,例如FileOutputStream

假設你實際上使用Apache通用FileUpload需要Apache Commons IO作爲依賴,這裏有一個基本的例子:

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); 
} 

或者你也可以只使用文件上傳的convenienced FileItem#write()方法:

String filename = FilenameUtils.getName(fileItem.getName()); // Important! 
File destination = new File("D:/path/to/files", filename); 

fileItem.write(destination); 

有關更多示例,提示和技巧,請檢查FileUpload User GuideFAQ