尝试使用以下指令
.directive('fileModel', ['$parse', function($parse) {
function fn_link(scope, element, attrs) {
var onChange = $parse(attrs.fileModel);
element.on('change', function (event) {
onChange(scope, { $files: event.target.files });
});
};
return {
link: fn_link
}
}])
然后将输入类型=文件替换为
<input type="file" id="fileId" accept="image/*" file-model="myFiles($files)"/>
var formData = new FormData();
$scope.myFiles = function($files) {
formData.append('img', $files[0]);
}
如果要添加某些内容,请使用formData中的键添加每个值以发送
像
formData.append('title', form.title);
$http.post('/api/courses/files', formData).then(...)
节点侧
var uploadMulter = multer.diskStorage({
destination: function(req, file, callback) {
callback(null, "./UploadDir");
},
filename: function(req, file, callback) {
callback(null, Date.now() + path.extname(file.originalname));
}
});
var upload = multer({ storage: uploadMulter });
是要上载文件的目标文件夹
最后是你的路由器
router.post('/courses/files', upload.single('img'), function(req,res){
console.log(req.file);});
现在,如果你想上传单个文件,请使用
upload.single('img')
这里将上载3个文件。随心所欲地改变。
app.use('/UploadDir', express.static(path.join(__dirname, 'UploadDir')))