【报错笔记】在做图片上传时上传图片后可以跳转到上传成功界面,也没有报错,数据库中也传入了值,可是eclipse中webapp下怎样都无法生存目录。
在做圖片上傳時上傳圖片后可以跳轉到上傳成功界面,也沒有報錯,數據庫中也傳入了值,可是eclipse中webapp下怎樣都無法生存目錄。
我使用UUID生成8級目錄,在webapp下創建目錄,將圖片傳進去。目錄始終無法創建的原因是項目默認在圖片上傳成功后,上傳到了發布路徑下,({workspace}.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\project_upload)而不是開發路徑中。
解決方案:更改Tomcat服務器,使其目錄生成到開發路徑,重新發布項目,執行后,即可生成目錄。
本來以為出來目錄就好了,結果做測試時當上傳圖片時第一次會創建一個目錄(如上圖),再之后不管怎么上傳圖片都不會創建目錄,但是controller里的代碼是正確的,目錄會正確創建,只是不會在webapp下生成目錄。
錯誤原因:后來我在controller中輸出System.getProperty(“user.dir”),發現它的當前工作目錄是F:\eclipse,在eclipse中真的發現了之前創建的目錄。
而我在src/test/java中寫的測試代碼顯示當前工作目錄是當前項目的路徑
解決方案:點擊項目>右鍵>Run as > Run Configurations,發現Java Application的工作路徑為${workspace_loc:ueas}
而Tomcat的工作路徑為F:eclipse,終于找到了錯誤之處。
解決方案:將Tomcat的Arguments改為項目路徑即可。
圖片上傳之后如果頁面不顯示圖片,只有刷新項目后才顯示圖片。這是因為圖片是上傳到tomcat容器那個部署的工程目錄下,eclipse會有自己的workspace這個跟工程的部署目錄路徑是不一樣的,你的圖片是不會自動上傳到eclipse下的,之所以刷新會有,這只不過是eclipse從部署目錄下同步過來。所以將項目添加到tomcat的目錄下即可。
但是上述步驟還是會出現問題,在圖片上傳后必須手動刷新一下頁面圖片才會顯示,所以路徑還是有問題,后來我又了利用另外一方法,直接取tomcat的工作路徑,就不用配置那些東西來湊tomcat工作路徑。
使用String path = req.getSession().getServletContext().getRealPath("/upload");來獲取tomcat工作路徑。
這樣圖片就可以自動上傳了而不需要再手動刷新。
這樣又出現了新的問題,圖片上傳后是保存在tomcat的webapp下,當重啟tomcat后圖片就會被清除,這樣就頁面在重啟后就不會顯示圖片了;
解決方案:在server.xml中配置存儲路徑,將其存儲位置固定,這樣重啟tomcat就不會被清除其webapp下的圖片。
總結
以上是生活随笔為你收集整理的【报错笔记】在做图片上传时上传图片后可以跳转到上传成功界面,也没有报错,数据库中也传入了值,可是eclipse中webapp下怎样都无法生存目录。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【项目经验】如果想在mapper.xml
- 下一篇: 【小知识】System.getPrope