2016-10-24 7 views
0

私は、Angular-Node-Expressを使用して私のサーバにファイルをアップロードします。 実は私はこのフォームフォームアクションをコントローラアクションに変更する

<html> 
    <body> 
     <form ref='uploadForm' id='uploadForm' action='/api/upload' method='post' encType="multipart/form-data"> 
       <input type="file" name="sampleFile" /> 
       <input type='submit' value='Upload!' /> 
     </form>  
    </body> 
</html> 

そして、私のサーバーに、私はこの

var express = require('express'); 
var fileUpload = require('express-fileupload'); 
var app = express(); 

// default options 
app.use(fileUpload()); 

app.post('/api/upload', function(req, res) { 
    var sampleFile; 

    if (!req.files) { 
     res.send('No files were uploaded.'); 
     return; 
    } 

    sampleFile = req.files.sampleFile; 
    sampleFile.mv('./uploads/'+ Date.now()+'.jpg', function(err) { 
     if (err) { 
      res.status(500).send(err); 
     } 
     else { 
      res.send('File uploaded!'); 
     } 
    }); 
}); 

を持って、私は名前を追加などのファイルを送信する前に私のコントローラ内の他のプロセスをしたい、またはチェック値Iを持っていますこのスコープ

function upload($scope, $http,$state){ 
    //Some process 
    $http.post('/upload','myFile') 
     .success(function(data){ 
      //More process 
     }); 
}; 

で持っているしかし、私は私のコントローラにファイルをキャッチするために、ホット知らない

答えて

0

ngFileUploadの使用をお勧めします。

私はこのようにそれを使用

HTML:

<form ng-submit="vm.submit()" enctype="multipart/form-data"> 
    <input type="file" 
     ngf-select="" 
     ng-model="vm.uploads.file" 
     ngf-multiple="true" 
     ngf-change="vm.fileSelected(vm.file, $event)" /> 
</form> 

JS:

function fileSelected(files, $event) { 
    vm.files // here you can access 1 or an array of files 
} 
関連する問題