0
У меня нет ошибки, но в каталоге нет файлов, поэтому я полностью потерял место, где искал ошибку. Я очень ценю любую помощь.Попытка сохранить файлы на сервер (Express) с клиента (Угловая) с помощью multer
HTML:
<div class="form-group">
<label for="file">File</label>
<input type="file" name="file" onchange="angular.element(this).scope().uploadFile('front',this.files)"/>
<label for="file">File2</label>
<input type="file" name="file" onchange="angular.element(this).scope().uploadFile('back',this.files)"/>
</div>
Угловой:
.controller('UploadCtrl', function ($scope, close, Pics) {
var fd = new FormData();
$scope.uploadFile = function(fileType, files){
fd.append(fileType , files)
}
$scope.con = function() {
Pics.sendPhotos(fd)
}
})
завод Файл:
.factory('Pics', function ($http) {
var sendPhotos = function (files) {
return $http({
method: 'POST',
url: '/upload/photos',
headers: {
'Content-Type': ''
},
data: files,
transformRequest : angular.identity
}).then(function (resp) {
console.log('done')
})
}
return ({
sendPhotos
})
})
Сервер:
var express = require('express');
var morgan = require('morgan');
var bodyParser = require('body-parser');
var path = require('path');
var multer = require('multer');
var app = express();
var storage = multer.diskStorage({
destination: function (req, file, cb){
cb(null, '/Users/pheon/Desktop/Smartfolio-1/server/uploads')
},
filename: function (req, file, cb){
cb(null, file.fieldname)
}
})
var upload = multer({storage: storage});
var middle = upload.fields([{
name: 'front', maxcount: 1
}, {name: 'back', maxcount: 1}]);
app.use(middle);
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(morgan('dev'));
app.use(express.static(path.join(__dirname, '/../client')));
require('./routes.js')(app, express);
var port = process.env.PORT || 8000;
app.listen(port, function() {
console.log('Listening on port ', port);
})
module.exports = app;
Маршруты
var uController = require('./controllers/userController.js');
var iController = require('./controllers/imgController.js');
var multer = require('./config/multer')
module.exports = function (app, express) {
app.post('/signin', uController.signin);
app.post('/register', uController.register);
app.get('/photos', iController.fetch);
app.post('/upload/photos', iController.upload);
}
imgController (InProgress):
var db = require('./../config/db');
module.exports = {
fetch: function (req, res) {
console.log('here')
},
upload: function (req, res) {
console.log(req.body)//shows up empty
}
};