網站怎麼去記錄上傳的圖片url合適呢?

來源:互聯網
上載者:User
對於網站上傳的圖片,圖片被上傳到伺服器中後,我們怎麼去記錄每個上傳的圖片檔案的儲存的地址呢?

比如:使用者上傳的映像,相簿,商品圖片等等,這些上傳的圖片我們怎麼去記錄其所在地址呢?

1:比如使用者表有個 avatar 欄位,使用者上傳圖片後,然後把形如: http://www.thinkphp.cn/Uploads/da/2015-08-05/55c18ef67e249.jpg 這樣的圖片url存入 avatar 欄位嗎? 還是只存圖片名稱,或者拆分為三段 網域名稱/路徑/名稱 存入三個欄位?

2:還有使用者相簿,使用者上傳很多圖片,這個怎麼將圖片的url儲存在資料庫中呢?

3:還有DZ論壇中一篇文章內容中可能包含很多圖片,這個怎麼存呢,還是要單獨建一個圖片附件表格,然後與文章ID關聯?

4:如果使用的是雲端儲存呢,比如七牛和又拍雲,使用它們的介面上傳後,也是會給你返回一個圖片url的嗎?那麼我們也像上面那樣將返回的圖片url儲存在資料庫中嗎?

既然網站很多地方都使用了圖片上傳功能,每個被上傳的圖片在伺服器中的位置都需要被記錄下來,那我們何不專門建立一張表來儲存所有上傳的圖片url呢?

我想到的最簡單的這個表的設計:imgup(id, url)

就這樣簡單,所有上傳的圖片資訊都在這裡記錄,比如原先使用者表中的 avatar 儲存的是映像的url,現在就可以儲存這個對應id就可以了,這樣就簡單多了,商品圖片,文章內容圖片,……,都同理。

但是我總覺得這樣太簡單了,過於不妥,這個表到底怎樣設計最合理呢?需不需要加片的一些其它資訊呢,比如在用戶端被上傳前的原始名稱,圖片大小,圖片尺寸,圖片建立時間,圖片修改時間,圖片EXIF資訊,……等等。

沒有看過DZ的代碼,文章中可以看到每個附件圖片和其它檔案,並能控制許可權讓使用者下載,不知道它那個是怎麼做的。

這個問題被延伸到網站【檔案上傳】上面就不局限於圖片了,所有上傳的檔案資訊都放在這個 記錄上傳檔案資訊 的表裡面,那就方便多了,管理也方便,所以這個問題我想了很久,就是沒有經驗,所以先來請教下各位大神。

希望有經驗的大神們不吝賜教,指點迷津,我當沒齒難忘,謝謝!

回複內容:

對於網站上傳的圖片,圖片被上傳到伺服器中後,我們怎麼去記錄每個上傳的圖片檔案的儲存的地址呢?

比如:使用者上傳的映像,相簿,商品圖片等等,這些上傳的圖片我們怎麼去記錄其所在地址呢?

1:比如使用者表有個 avatar 欄位,使用者上傳圖片後,然後把形如: http://www.thinkphp.cn/Uploads/da/2015-08-05/55c18ef67e249.jpg 這樣的圖片url存入 avatar 欄位嗎? 還是只存圖片名稱,或者拆分為三段 網域名稱/路徑/名稱 存入三個欄位?

2:還有使用者相簿,使用者上傳很多圖片,這個怎麼將圖片的url儲存在資料庫中呢?

3:還有DZ論壇中一篇文章內容中可能包含很多圖片,這個怎麼存呢,還是要單獨建一個圖片附件表格,然後與文章ID關聯?

4:如果使用的是雲端儲存呢,比如七牛和又拍雲,使用它們的介面上傳後,也是會給你返回一個圖片url的嗎?那麼我們也像上面那樣將返回的圖片url儲存在資料庫中嗎?

既然網站很多地方都使用了圖片上傳功能,每個被上傳的圖片在伺服器中的位置都需要被記錄下來,那我們何不專門建立一張表來儲存所有上傳的圖片url呢?

我想到的最簡單的這個表的設計:imgup(id, url)

就這樣簡單,所有上傳的圖片資訊都在這裡記錄,比如原先使用者表中的 avatar 儲存的是映像的url,現在就可以儲存這個對應id就可以了,這樣就簡單多了,商品圖片,文章內容圖片,……,都同理。

但是我總覺得這樣太簡單了,過於不妥,這個表到底怎樣設計最合理呢?需不需要加片的一些其它資訊呢,比如在用戶端被上傳前的原始名稱,圖片大小,圖片尺寸,圖片建立時間,圖片修改時間,圖片EXIF資訊,……等等。

沒有看過DZ的代碼,文章中可以看到每個附件圖片和其它檔案,並能控制許可權讓使用者下載,不知道它那個是怎麼做的。

這個問題被延伸到網站【檔案上傳】上面就不局限於圖片了,所有上傳的檔案資訊都放在這個 記錄上傳檔案資訊 的表裡面,那就方便多了,管理也方便,所以這個問題我想了很久,就是沒有經驗,所以先來請教下各位大神。

希望有經驗的大神們不吝賜教,指點迷津,我當沒齒難忘,謝謝!

沒人回答嗎?

1.UPYUN的外鏈為形式:http://<空間名>.b0.upaiyun.com/<檔案路徑>
#<檔案路徑>可以自己去定義,可以參考save-key 詳細說明
2.可以參考官方的SDK
3.DZ官方有外掛程式你可以看看[DZ]
4.同2

我現在也在做類似平台,我採用的方式是使用nodejs來處理所有檔案的請求。命名方式採用uid/year-month/hash 。七牛的話,看你的是不是私密空間了,如果不是則直接根據bucket的網域名稱拼接就行。如果是私密空間,可用sdk擷取檔案臨時下載地址。手機打的,說得有點亂,見諒

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.