我是流星和网络开发的新手,我想为我的流星网络应用程序实现以下目标:
我发现的有关此问题的所有信息都已弃用,指的是collectionFS,或者太具体/适用于小众问题。这已经证明比问题看起来更复杂!
我想要的是一个类似教程的指南,解释如何操作,或者一些代码片段,这些代码片段有助于设置实现上述功能。
修改
我已设法使用包tomi:meteor-upload上传文件。
然后,这将创建一个/.uploads
文件夹,我的文件将上传到该文件夹。
当我尝试使用<a href="/.uploads/myfilename" download target="_blank">Download</a>
从客户端下载它们时,我发现下载的文件已损坏!
我还尝试将它们上传到/public
文件夹而不是/.uploads
文件夹,但仍然遇到同样的问题。
这是here,但是没有找到解决方案,即使我手动chmod 777我的文件我也遇到了问题!
谢谢!
答案 0 :(得分:0)
您可以尝试busboy https://github.com/mscdex/busboy:
this.route('/upload', {
where: 'server',
method: 'POST',
name:'upload',
onBeforeAction: (function (req, res, next) {
//busboy code here
var busboy = new Busboy({ headers: req.headers });
busboy.on('file', function(fieldname, file, filename, encoding, mimetype) {
console.log('File [' + fieldname + ']: filename: ' + filename + ', encoding: ' + encoding + ', mimetype: ' + mimetype);
file.on('data', function(data) {
console.log('File [' + fieldname + '] got ' + data.length + ' bytes');
});
file.on('end', function() {
console.log('File [' + fieldname + '] Finished');
});
});
busboy.on('field', function(fieldname, encoding, mimetype) {
console.log('Field [' + fieldname + ']: value: ' + inspect(val));
});
busboy.on('finish', function() {
console.log('Done parsing form!');
res.writeHead(303, { Connection: 'close', Location: '/' });
res.end();
next();
});
req.pipe(busboy);
});
您可以使用file.pipe(fs.createWriteStream(saveTo));
并且saveTo是您上传的路径,例如:C:/media/
,并尝试创建链接示例的ang Path:localhost:80/media/image-here.png
使用方法将这些链接存储在您的数据库中,您可以使用APACHE for File hosting。