2017-04-07 89 views
0

我目前對grails項目使用Intellij創意。在grails控制器中獲取應用程序路徑

我想上傳用戶個人資料圖片到項目目錄。 例如E:\ MyProject的\ userUploads

我目前正試圖使用​​下面的代碼

def filePath = request.getSession().getServletContext().getRealPath("/") 

獲得路徑但當我打印的文件路徑獲得:

C:\用戶\拉胡爾。 Mahadik \應用程序數據\本地的\ Temp \ Tomcat的docbase.2236924879274963579.8080 \

還有,我也嘗試過類似上面

01我的當前目錄的 "servletContext.getRealPath("/")"這也讓路徑,但得到相同的路徑

謝謝

+0

這個「Grails的-Dapp.context = /運行的應用程序」解決 –

回答

0

您應該瞭解在Grails中構建和運行Web應用程序的流程。

當您啓動run-app命令,Grails的編譯代碼和創建戰爭文件 - 這是一個Web應用程序歸檔。 爲了運行這個war文件,你需要一些web服務器。 Grails有它的嵌入式Tomcat服務器,所以它獲得了war文件並將其部署到Tomcat。
Tomcat擁有自己的文件夾,其中部署了Web應用程序歸檔文件。因此,應用程序的路徑是Tomcat服務器運行應用程序的某個文件夾的路徑。這就是爲什麼你看到

C:\用戶\ Rahul.Mahadik \應用程序數據\本地的\ Temp \ Tomcat的docbase.2236924879274963579.8080 \

顯然,Tomcat有不知道在您的項目所在地。所以當你的應用程序運行時你無法獲得這個路徑。

使文件存儲路徑可配置是一種常見的做法。 你可以得到的想法如何使用外部配置文件在本主題:如果我運行的應用程序How to use external .groovy config file in Grails 3

+0

感謝@Taras科胡特。 –

+0

我已經完成了「grails -Dapp.context =/run-app」也 –

相關問題