簡體   English   中英

如何通過Servlet在項目文件夾中創建文件?

[英]How can I create a file in my project folder through Servlet?

我的目標是在我的Web應用程序的一個文件夾中創建文件,這樣當用戶點擊下載按鈕時,它將從該特定文件夾下載文件。 例如,我的文件位於“MyProjectName / WEB-INF / NewFolder / myfile.xls”中。 現在,如何在該文件夾中創建“myfile.xls”?

這是我已經嘗試過的:

我在Servlet中使用此代碼將文件路徑設置為“/ WEB-INF / NewFolder /”:

   String filePath = getServletContext().getRealPath("/WEB-INF/NewFolder/myfile.xls");

但問題是,上面代碼中“filePath”的值是:

   C:\Users\MyUserName\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\MyProjetName\WEB-INF\NewFolder\myfile.xls

因此,“myfile.xls”不會在“/ MyProject / WEB-INF / NewFolder”中創建,而是在元數據文件夾中創建。 因此,它只在我的機器上工作,即localhost。 當我試圖通過另一台機器訪問我的應用程序時,我無法下載該文件。 我想我正在通過JSP頁面的絕對路徑,這使得無法從不同的機器下載它。 所以有人可以告訴我這里做錯了嗎?

您的webapp在運行時部署到Web服務器,而filePath指向部署文件夾內的某個位置而不是項目。

無論如何,你為什么要寫入WEB-INF? 例如,如果您重新部署應用程序,則通常會刪除內部的所有文件。 是不是更好地在服務器內部使用一些文件夾(例如在tomcat中我們可以使用${catalina.home}/myfiles文件夾或其他一些外部Web服務器?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM