Can't write file into folder on win10 using multer
- Dominant language
- JavaScript
- Stars
- 12.1k
- Forks
- 1.1k
- Avg merge
- 8d 2h
- Merged PRs (30d)
- 21
Description
I use multer upload file in express,But after upload controller js action,then local folder haven't upload file on win10. This is code. The upload form also set enctype="multipart/form-data".
This is upload.js.
---------------------------------------------------------
var multer = require('multer'),
mkdirp = require('mkdirp');
var storage = multer.diskStorage({
destination: function(req, file, cb) {
var curCatalog = req.baseUrl.match(/admin\/([a-z]*)/)[1];
mkdirp('./public/upload/image/' + curCatalog, function(err) {
if (err) {
console.log(err);
return;
}
})
cb(null, './public/upload/image/' + curCatalog + '/');
},
filename: function(req, file, cb) {
var fileFormat = (file.originalname).split(".");
cb(null, fileFormat[0] + "." + fileFormat[fileFormat.length - 1]);
}
});
var upload = multer({
storage: storage
});
module.exports = upload;
-----------------------------------------------------------
This is upload controller javascript.
------------------------------------------------------------
var async = require('async'),
bcrypt = require('bcrypt-nodejs'),
db = require('../../config/db'),
product = require('../../models/product'),
upload = require('../../utils/upload');
var uploadFile = upload.fields([{ name: 'pictures', maxCount: 10 }]);
module.exports = {
addProduct: function(req, res, next) {
uploadFile(req, res, function(err) {
var picturesDest = '',
picturesPath = '',
pctLength = req.files['pictures'].length;
for(var i = 0; i < pctLength; i++){
picturesDest = (req.files['pictures'][i].destination).replace(/^(\.\/public)/, '');
picturesPath += picturesDest + req.files['pictures'][i].filename + ',';
}
picturesPath = picturesPath.substring(0, picturesPath.length-1);
var productInfo = {
title: req.body.title,
pictures: picturesPath,
description: req.body.description
};
db.getConnection(function(err, connection) {
if (err) {
throw err;
}
connection.query(product.insert, [productInfo.title, productInfo.pictures,productInfo.description], function(err, rows) {
if (err) {
throw err;
}
res.redirect('/admin/product');
connection.release();
})
})
})
}
}
Contributor guide
Assessment
This issue has not been assessed yet.