2016-05-19 39 views
0

我有一個產生DataURL的客戶端組件(即用戶上傳或捕捉圖片然後裁剪)。我需要通過AJAX調用發佈到sails端點。從帆文檔,端點應該讀取文件,像這樣:通過AJAX DataURL啓動端點

req.file('file_name'); 

我被困在我應該如何從DataURI去 - > AJAX調用格式化,使端點將能夠閱讀來自req.file的文件。我想我只需要看看在任何JavaScript /框架庫中設置的調用的實現,以便我可以實現。

非常感謝。

回答

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

     }); 
    };