淘淘商城圖片上傳功能的實現

前提:html

參考:集羣環境下圖片上傳的功能分析、vmware的安裝,linux的安裝、nginx和ftp服務在linux的安裝,ftp的客戶端的使用。java

圖片上傳是圖片存儲到ftp服務器上面,因此這裏不須要操做mapper層。linux

這裏用了幾個工具類nginx

ftp圖片上傳的工具類,圖片名字的一種新的生成方式,json與java類的轉換工具。spring

這裏圖片上傳採用的是富文本編輯器的一個圖片上傳插件,在jsp頁面實現的。數據庫

http://kindeditor.net/docs/upload.htmljson

根據這幾個jsp頁面咱們能夠看到圖片上傳功能的url和傳入的參數。瀏覽器

分析:服務器

(1)圖片是上傳到ftp服務器,不是在數據庫。因此咱們搭建好服務的環境。app

(2)是否有傳入的參數和返回值

在這裏咱們看到參數即uploadFile,url爲/pic/upload

這裏注意使用的上傳到服務器的一個MultiPartFile對象

springMVC實現圖片的上傳,須要依賴

導入common-fileupload的依賴

<!-- 文件上傳組件 -->

         <dependency>

              <groupId>commons-fileupload</groupId>

              <artifactId>commons-fileupload</artifactId>

         </dependency>

這裏須要在springMVC中配置這個文件上傳的bean

利用富文本編輯器上傳圖片返回的結果是也是json的格式,詳細能夠參考kindEditor的上傳功能實現文檔:

返回格式(JSON):

這裏有返回成功時的狀況和失敗時的狀況。咱們能夠採用兩種方式來保存返回的json數據,一種是map集合的鍵值對形式,一種是pojo對象。下面看下兩種方式:

Map的鍵值對形式以下:

pojo對象格式:

public class PictureResult {

 

     /**

      * 上傳圖片返回值,成功:0 失敗:1  

      */

     private Integer error;

     /**

      * 回顯圖片使用的url

      */

     private String url;

     /**

      * 錯誤時的錯誤消息

      */

}

(3)代碼的編寫實現:

controller層:

這是採用map的形式存儲返回值,由於圖片上傳這個插件有些缺陷會在有的瀏覽器顯示不出來,因此須要將java對象轉爲json的數據形式。

service層:

這裏的步驟是:

1、生成圖片的名稱,這裏採用的是上面講的利用時間的分秒來實現的命名,具體見下一章

2、利用FTPUtil工具實現圖片的上傳:

在這裏須要獲取ftp服務器的ip,用戶名,密碼,存儲的路徑。

用到了一個spring的新技術

首先將這些ip端口等等寫在一個文件中,而後利用spring來讀取,由於在項目中不能將這些東西寫死。

讀取方式:

另外還有一個新技術,就是joda-time的日期類型轉換的插件,在依賴的jar包那裏添加依賴:

利用這個插件,能夠直接生成所須要的格式:

這裏是採用時間的形式來生成做爲圖片的文件夾

相關文章
相關標籤/搜索