0
我需要你的帮助,这是非常重要的,因为停止我的应用程序的进展。我尝试了一切,但我很困惑。我尝试使用MULTER上传文件,如果我使用POSTMAN作为我的代码,我得到的回应是'File uploaded'
这就是一切似乎没问题,但没有任何反应,即req.file is undefined
并且不知道如何改变它。请看看我的代码在MEAN中使用MULTER上传文件的应用程序
服务器
var express = require('express');
var app = express();
var port = process.env.PORT || 8080;
var morgan = require('morgan');
var path = require('path');
var multer = require('multer');
var mongoose = require('mongoose');
var bodyParser = require('body-parser');
var router = express.Router();
var appRoutes = require('./app/routes/api')(router,multer,path);
var passport = require('passport');
var social = require('./app/passport/passport')(app,passport);
var product = require('./app/seed/product-seeder');
app.use(morgan('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(express.static(__dirname + '/public'));
app.use('/api', appRoutes);
mongoose.connect('mongodb://localhost:27017/tutorial', function(err){
if(err){
console.log('MongoDB not connected' + err)
} else {
console.log('Scuccessfully connected to MongoDB database');
}
})
app.get('*', function(req, res){
res.sendFile(path.join(__dirname + '/public/app/views/index.html'))
})
app.listen(port, function(){
console.log('Running the server on port ' + port)
});
API
module.exports = function(router,multer,path) {
var storage = multer.diskStorage({
destination: function(req, file, callback) {
callback(null, './uploads')
},
filename: function(req, file, callback){
callback(null, file.fieldname + '-' + Date.now() + path.extname(file.originalname))
}
})
router.post('/courses/files', function(req, res) {
var upload = multer({ storage: storage }).single('file')
upload(req, res, function(err) {
res.end('File is uploaded')
console.log(req.file)
})
})
return router
}
服务
userFactory.storeFile = function(file){
return $http.post('/api/courses/files', file)
}
HTML
<div class="container management-user">
<form enctype="multipart/form-data" name="sendFile" ng-submit="product.sendFile(file)" novalidate>
<input type="file" name="file" id="imgInp">
<input type="submit" value="submit">
</form>
</div>
控制器
app.sendFile = function(file, valid) {
User.storeFile(app.file).then(function(data){
console.log(data)
});
}
注意的加入,如果您尝试CONSOLE.LOG(FORMDATA)的角度,它会永远是不确定其财产不显示任何东西。 –
是的,我同样解决了这个问题,但这是一个很好的答案!我想很多人都会从这个答案中受益,非常感谢 –