我想将图像从客户端上传到服务器。客户必须看到他或她拥有的所有图像的列表,并查看图像本身(缩略图或类似的东西)。
我看到人们使用两种方法(一般来说)
1-上传图像并将二进制文件保存到MongoDB
2-上传图像并将其移动到文件夹,将路径保存到某处(经典方法,到目前为止我实现的方法)
每种方法的优缺点是什么?如何检索数据并在每种情况下将其显示在模板中(获取路径并写入src
属性和img
标记并发送二进制文件)?
到目前为止发现的问题:当我上传请求foo.jpg
(localhost:3000 / uploads / foo.jpg)并将服务器移动到已知文件夹时,我的路由器(铁路由器)无法找到如何处理请求。
答案 0 :(得分:0)
1-上传图像并将二进制文件保存到MongoDB
要么将文件大小限制为16MB并且只使用基本的mongoDB,要么使用gridFS并且可以存储任何内容(没有大小限制)。有几个使用这种方法的赞成,但恕我直言,它比存储在文件系统上要好得多:
2-上传图像并将其移动到文件夹,将路径保存到某处 (经典方法,到目前为止我实施的方法)
在这种情况下,要么将所有内容存储在公用文件夹中,并使用文件名+路径公开访问所有内容,要么使用专用资产交付系统,例如ngix服务器。无论哪种方式,您将使用比第一个选项更不安全和可维护的东西。
话虽如此,请查看the file collection package。它比collection-fs简单得多,它将为您提供开箱即用的所有内容(包括文件api,gridFS存储,可恢复上传和许多其他内容)。
到目前为止发现的问题:当我请求foo.jpg时 (localhost:3000 / uploads / foo.jpg)我上传并且服务器移动了 到一个已知的文件夹,我的路由器(铁路由器)无法找到如何处理 请求。
您知道此路径指向您的根文件夹<script>
$(document).ready(function() {
var mult = 0;
var tot_val = $("#total_item_count").val();
$('.cad_cons').keyup(function() {
$('.cad_cons').each(function() {
var cad_calc = $(".cad_cons").val();
if(!isNaN(this.value) && this.value.length!=0) {
mult += parseFloat(tot_val) * parseFloat(cad_calc);
}
$(".total_cad_cons").val(mult);
});
});
});
</script>
目录吗?如果你把它放在那里,你应该可以请求它。