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


前提:

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

圖片上傳是圖片存儲到ftp服務器上面,所以這里不需要操作mapper層。

這里用了幾個工具類

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

這里圖片上傳采用的是富文本編輯器的一個圖片上傳插件,在jsp頁面實現的。

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

根據這幾個jsp頁面我們可以看到圖片上傳功能的url和傳入的參數。

分析:

(1)圖片是上傳到ftp服務器,不是在數據庫。所以我們搭建好服務的環境。

(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包那里添加依賴:

利用這個插件,可以直接生成所需要的格式:

這里是采用時間的形式來生成作為圖片的文件夾

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM