3 回答

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超3個(gè)贊
您可以ServletContext#getRealPath()用來(lái)將相對(duì)Web內(nèi)容路徑轉(zhuǎn)換為絕對(duì)磁盤文件系統(tǒng)路徑。
String relativeWebPath = "/WEB-INF/static/file1.ext";
String absoluteDiskPath = getServletContext().getRealPath(relativeWebPath);
File file = new File(absoluteDiskPath);
InputStream input = new FileInputStream(file);
// ...
但是,如果你的唯一目的是為了得到一個(gè)InputStream出來(lái),更好的使用ServletContext#getResourceAsStream(),而不是作為getRealPath()可能返回null每當(dāng)戰(zhàn)爭(zhēng)不是擴(kuò)大本地磁盤上的文件系統(tǒng)(Tomcat的默認(rèn)完成,但可配置,不這樣做?。?/p>
String relativeWebPath = "/WEB-INF/static/file1.ext";
InputStream input = getServletContext().getResourceAsStream(relativeWebPath);
// ...
畢竟,這比該java.io.File方法更健壯。

TA貢獻(xiàn)1744條經(jīng)驗(yàn) 獲得超4個(gè)贊
你可以試試這個(gè)
String relativeWebPath = "WEB-INF/static/file1.ext";
InputStream input = getServletContext().getResourceAsStream(relativeWebPath);

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超4個(gè)贊
我更喜歡使用getResourceaAsStream選項(xiàng)基于父目錄加載資源。
getClass().getClassLoader().getResourceAsStream("/MY_STATIC_FOLDER/file1");
- 3 回答
- 0 關(guān)注
- 454 瀏覽
添加回答
舉報(bào)