最近在做一個小項目,對於一個還沒畢業還在努力奔跑的小菜鳥來說,用SSH上傳圖片並且保存圖片路徑在數據庫中,簡直不要太難,百度過好多方法,加上自己琢磨,總算在三天之後成功上傳並且顯示出來了。之前用過PHP,也是上傳圖片並且顯示出來,那時候是直接參考學長的代碼,將圖片保存在一個文件夾裏面,然後將要顯示的圖片放在一個配置文件裏面,之後直接讀取配置文件裏的內容,成功顯示在頁面上。
選擇上傳圖片的JSP頁面:
Action方法:
這個代碼裏面參考了百度上不記得是哪位大神的代碼,也加了一些自己的想法。我的image對象裏面就只有path一個屬性,本來之前還加了一個ID的,但是因爲我把ID設置成自增的,然後我一時半會不記得怎麼不管它讓它自己增長了,所以乾脆刪掉了。
還有Image image=new Image();這裏沒截下來了。我之前就沒有new,結果一直提示我空指針,我還以爲是這個方法有問題,於是又換成把圖片轉換成二進制流的方法,還是不行,最後發現是這個問題,很崩潰,花了我兩天的時間在研究它。後來找到原因了還是換回了這個方法,感覺二進制流的我自己不是很明白,不敢擅用。
pt那裏實際是前面的newName就可以了,因爲這個沒部署到服務器上面去,所以總是圖片上傳也只是暫時的,所以我當時在測試是不是因爲後綴名的問題,因爲我上傳的圖片都是.JPG,而裏面原有的都是.jpg,我還以爲是我大小寫搞錯了所以才顯示不了,後來發現根本不是的。
service方法:
Dao代碼:
以上是實現圖片上傳的代碼,我是保存的相對路徑,本來之前保存的是絕對路徑,後來發現斜槓有問題,於是就乾脆改成相對路徑了。
圖片顯示JSP頁面:
這個在圖片上傳成功之後還有個頁面跳轉過來的,因爲我不會做前端的JS。
Action方法:
我把list保存到session裏面了,然後在顯示頁面也遇到了很多麻煩,剛開始一直輸出不了,讀取不了,很是鬱悶。
Service和Dao方法:
最後是顯示圖片的頁面:
我存的是相對路徑,在WebContent下的image文件夾,所以這裏顯示的時候做了點小處理。
千萬千萬要記得加:
我之前就忘記了加這個,一直覺得應該沒事吧,結果就。。。。
嗯。。。。最後還是總結一下,,,,,很簡陋的代碼,但是長知識了
又加需求了,我得滾回去寫代碼去了。。。。。。。。。