DataURL通过AJAX到sails端点

时间:2016-05-19 00:50:51

标签: javascript ajax sails.js

我有一个产生DataURL的客户端组件(即用户上传或捕捉图片然后裁剪它)。我需要通过AJAX调用将其发布到sails端点。从sails文档中,端点应该像这样读取文件:

req.file('file_name');

我被困在我应该如何从DataURI - > AJAX调用格式化,以便端点能够从req.file读取文件。我想我只需要在任何javascript /框架库中看到调用的实现,以便我可以实现。

非常感谢。

1 个答案:

答案 0 :(得分:1)

在客户端,您需要将DataURL转换为表单数据。有几个示例herehere并将其发送到您控制器中的路由。

您的终端将是一条看起来像这样的路线:

  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...

        });
  };