Meteor JS图像上传和显示

时间:2015-03-14 16:55:07

标签: image file-upload meteor

我尝试使用管理页面构建电子商务网站,管理员可以上传某些产品的图片。 我希望Meteor将这些图像上传到文件夹,然后在该产品的产品页面中显示这些图像。

我知道通常客户端将使用的图像文件应该在公共场所内。文件夹,但我想知道更多关于我可能有的其他选择。

另外,如果我将新文件上传到' public'文件夹或如果我删除了公共'文件夹,网站刷新自己...这是好的和坏的同时取决于你的后果....

以下是我的问题:

  1. 如果我创建了一个'上传'该怎么办?服务器中的文件夹并将图像上载到该文件夹​​。是否可以在“上传”内显示图像。客户端浏览器中的文件夹???如何??
  2. 有没有办法使用浏览器访问' public'的内容?文件夹???
  3. 有没有办法阻止'反应性'如果在“上传”中发生了变化文件夹创建?
  4. 将图片上传到公众'文件夹可用于此问题的最佳解决方案?
  5. 非常感谢你的帮助

5 个答案:

答案 0 :(得分:9)

当处理可能存在大量图像的内容时,我不仅要将存储空间卸载到第三方,还要将处理工作卸载到第三方。

在这种情况下我的应用程序将是Cloudinary。原因如下:

  • 存储 - 我可以将原始图像存储在我的应用程序之外。保持图像从开发到生成同步的巨大好处。
  • CDN - 我从Cloudinary CDN快速加载图像可以获得额外的好处。
  • 卸载处理 - 所有图像处理都由Cloudinary处理,这不会减慢整个应用程序的速度。
  • 图像处理 - 我可以调用原始图像,调用只获取缩略图,然后调用更改操作,即:effect =>灰度。因此,如果上传了1000x1000像素的图像,我可以从Cloudinary请求50x50像素,这会将裁剪的图像返回到精确的大小,而不是使用CSS来缩小大图像。
  • 灵活性 - 我可以更改图片的大小并将确切的大小返回给应用,而无需重新上传图片。例如,如果我的产品页面以40px的大拇指拉动,我可以轻松拨打电话以50px抓取相同的图像。

希望这会有所帮助。 http://cloudinary.com/

答案 1 :(得分:2)

您可以使用meteor包collectionFS完成所有这些操作。该软件包已有详细记录,您可以使用各种选项来存储上载的文件。 CollectionFS还提供上传图像处理的功能,例如创建调整大小的缩略图。

答案 2 :(得分:1)

我意识到这个问题有点老了。 我有同样的问题,对我有用的解决方案之一是使用meteor-upload https://github.com/tomitrescak/meteor-tomi-upload-jquery

答案 3 :(得分:1)

绝对不要将内容存储在公共目录中 - 它会减慢启动应用程序的速度,并且一旦有大量图像存在,图像上传时的热代码刷新很容易导致它崩溃。

任何上述将图像存储在其他地方的解决方案都可行。另一个选择是使用peerlibrary:aws-sdk包将内容上传到S3,这是我用于几个应用程序并且发现非常干净。

答案 4 :(得分:1)

将图像存储为MongoDB中的base64字符串也是一种方法。用于发布到API并节省必须处理其他第三方的担忧。