0
服務器的node.js我簡單多FORMDATA後輸入類型的文件,從角服務呼叫
<form action="/upload" enctype="multipart/form-data" method="post">
<span class="btn btn-file">
<input type="file" name="file" ng-model="file"/>
<span class="btn btn-primary" ng-click="upload()">Upload</span>
</span>
</form>
我想這樣做,張貼所有文件寫在Node.js的服務器相關信息
server.js這是寫入節點的文件上傳處理程序。強大的期望文件的所有參數。
upload: function uploadfn (req, res) {
var form = new formidable.IncomingForm();
form.parse(req, function(err, fields, files) {
// `file` is the name of the <input> field of type `file`
var old_path = files.file.path,
file_size = files.file.size,
file_ext = files.file.name.split('.').pop(),
index = old_path.lastIndexOf('/') + 1,
file_name = old_path.substr(index),
new_path = path.join(process.env.PWD, '/uploads/', file_name + '.' + file_ext);
fs.readFile(old_path, function(err, data) {
fs.writeFile(new_path, data, function(err) {
fs.unlink(old_path, function(err) {
if (err) {
res.status(500);
res.json({'success': false});
} else {
res.status(200);
res.json({'success': true});
}
});
});
});
});
}
我堅持的東西在,我根本服務呼叫準備在角如下:
service.factory('FileUpload', function ($resource) {
return $resource('/upload', {}, {
post: {method: 'POST'}
});
});
此調用打後端從角控制器如下
$scope.upload = function(){
console.log($scope.file);
FileUpload.post(function(){
});
}
我不知道如何發佈文件提交,以便節點可以捕獲它。另外$ scope.file是未定義的。
請幫我解決這個問題。