我有一个产生DataURL的客户端组件(即用户上传或捕捉图片然后裁剪它)。我需要通过AJAX调用将其发布到sails端点。从sails文档中,端点应该像这样读取文件:
req.file('file_name');
我被困在我应该如何从DataURI - > AJAX调用格式化,以便端点能够从req.file读取文件。我想我只需要在任何javascript /框架库中看到调用的实现,以便我可以实现。
非常感谢。
答案 0 :(得分:1)
在客户端,您需要将DataURL转换为表单数据。有几个示例here和here并将其发送到您控制器中的路由。
您的终端将是一条看起来像这样的路线:
var uploadHandlier = function(req, res)
{
req.file('avatar').upload(
{
// don't allow the total upload size to exceed ~4MB
maxBytes: 4000000,
dirname: '/tmp' // some temp directory
}, function whenDone(error, uploadedFiles)
{
if (error)
{
if (error.code === 'E_EXCEEDS_UPLOAD_LIMIT')
{
return res.badRequest(
{
msg: error.message
});
}
return res.serverError(error);
}
if (_.isEmpty(uploadedFiles))
{
res.badRequest(
{
msg: "No file was uploaded."
});
return;
}
var filePath = uploadedFiles[0].fd;
var fileType = uploadedFiles[0].type;
if (!_.includes(['image/jpeg', 'image/png', 'image/gif'], fileType))
{
res.badRequest(
{
msg: "Invalid file type."
});
return;
}
// do your thing...
});
};