作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我可以下载图片和pdf,但是我不能下载文档文件(.doc .pptx .odt ...)
当下载文档(.doc .pptx .odt ...)时,仅作为 .ZIP XML 文件下载。我能做什么?
我正在使用:fill out upload file docs
upload: function (req, res) {
req
.file('avatar')
.upload({
maxBytes: 10000000
}, function whenDone(err, uploadedFiles) {
if (err) {
return res.negotiate(err);
}
// Generate a unique URL where the avatar can be downloaded.
avatarUrl = require('util').format('%s/user/avatar/%s', sails.getBaseUrl(), req.session.User.id_user),
// Grab the first file and use it's `fd` (file descriptor)
avatarFd = uploadedFiles[0].fd
var SkipperDisk = require('skipper-disk');
var fileAdapter = SkipperDisk(/* optional opts */);
// Stream the file down
fileAdapter.read(avatarFd).on('error', function (err){
return res.serverError(err);
}).pipe(res);
});
},
最佳答案
我在 Windows 上使用它,没有任何问题。
upload : function (req, res) {
req.file('avatar').upload({
maxBytes: 10000000
}, function whenDone(err, uploadedFiles) {
if (err) {
return res.negotiate(err);
}
var avatarFd = uploadedFiles[0].fd;
res.ok(avatarFd);
});
},
download: function (req, res) {
var location = req.param('fd');
var SkipperDisk = require('skipper-disk');
var fileAdapter = SkipperDisk(/* optional opts */);
fileAdapter.read(location).on('error', function (err) {
return res.serverError(err);
}).pipe(res);
}
首先使用 /somecontroller/upload
和 multipart/form-data
上传它,它将返回一个 fd
位置。并使用此 url 下载它
http://localhost:1337/somecontroller/download?fd=[fd-from-upload-return]
Controller 名称和主机名称取决于您的应用程序配置。
使用fd
完整路径只是一个例子,在以后的产品中你应该使用你自己的 Controller 从上传的文件夹中寻址到返回已经上传的文件,它通常在.tmp/上传/
。
关于javascript - 如何上传文件 - sails.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27608304/
我是一名优秀的程序员,十分优秀!