2015-07-22 37 views
0

我想將圖像從客戶端上傳到服務器。客戶必須看到他或她擁有的所有圖像的列表,並看到圖像本身(縮略圖或類似的東西)。從Meteor應用程序上傳和請求圖像

我看到使用兩種方法(一般來講)

1-上傳影像人民和二進制文件保存到MongoDB的

2 - 上傳的圖像,並將其移動到文件夾,保存在某個地方的路徑(經典方法,以及我迄今爲止實現的方法)

每種方法的優缺點是什麼,以及如何在每種情況下檢索數據並將其顯示在模板中(獲取路徑並寫入src屬性和img標籤併發送二進制文件)?

到目前爲止發現的問題:當我要求我上傳的foo.jpg(localhost:3000/uploads/foo.jpg)和服務器移動到已知文件夾時,我的路由器(鐵路由器)未能找到如何處理請求。

回答

0

1-上傳圖像和二進制文件保存到MongoDB的

要麼你限制文件大小爲16MB,只使用基本的MongoDB的,任你使用GridFS的,並且可以存儲任何東西(沒有大小限制)。有使用這種方法的幾個親利弊,但恕我直言它比存儲在文件系統上要好得多:

  • 文件不碰你的文件系統,它們是通過管道輸送到你的數據庫
  • 你得到回所有蒙戈的好處,你可以擴展無憂慮
  • 文件的分塊,你只能發送一個特定字節範圍
  • 文件都像任何其他蒙戈文件訪問(流媒體或下載恢復有用的),所以你可以使用允許/拒絕功能,pub/sub等。

2 - 上傳的圖像,並將其移動到文件夾,保存某個路徑 (經典方法,和一個我實現了迄今爲止)

在這種情況下,任你存儲所有信息您的公用文件夾並使用文件名稱+路徑將所有內容公開訪問,您可以使用專用資產傳送系統,例如ngix服務器。無論哪種方式,您都將使用比第一個選項更不安全和可維護的東西。

這麼說吧,看看the file collection package。它比collection-fs簡單得多,並且可以爲您提供開箱即用的所有功能(包括api文件,gridFS存儲,可恢復上傳以及其他許多功能)。發現


問題至今:當我請求foo.jpg (本地主機:3000 /上傳/ foo.jpg)我上傳和服務器移至 到已知的文件夾,我的路由器(鐵路由器)未能找到如何處理 的請求。

你知道這個路徑導致你的根文件夾public/uploads/foo.jpg目錄嗎?如果你把它放在那裏,你應該可以請求它。

相關問題