我希望使用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!');
}
});
});
我想在我的控制器中执行其他过程之前发送文件,如添加名称,或检查我在此范围内的值
function upload($scope, $http,$state){
//Some process
$http.post('/upload','myFile')
.success(function(data){
//More process
});
};
但我不知道在我的控制器中抓住文件很热
答案 0 :(得分: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
}