Java獲取Web服務器文件
如果獲取的是服務器上某個目錄下的有關文件,就相對比較容易,可以設定死絕對目錄,但是如果不能設定死絕對目錄,也不確定web服務器的安裝目錄,可以考慮如下兩種方式:
- 方法一:先獲取web服務器當前絕對位置,然后拼接相對目錄
考慮到java web項目一般會采用strust2來做,所以可以使用ServletActionContext.getServletContext().getRealPath("")來獲取當前的web服務器絕對路徑。再拼接相對位置即可,總的程序示例如下:
public InputStream getFileStream() throws Exception{ System.out.println(filename); String realPath = ServletActionContext.getServletContext().getRealPath(""); System.out.println("realPath:"+realPath); return new FileInputStream(realPath+filename); }
- 方法二:通過webURL地址才獲取文件
因為不管web服務器安裝在什么位置,其對外顯示的URL地址總是不變的,如http://xx.xx.xx.xx/xx 那么要返回http://xx.xx.xx.xx/xx/xx.doc 文件的話,可以采用如下方式,沒有做過實驗,不過類似於網絡爬蟲中的文件獲取。
URL url = new URL(urlString); URLConnection conn = url.openConnection(); BufferedReader reader = new BufferedReader(new InputStreamReader(conn. getInputStream()));
獲取網絡流后再返回文件流1