expressjs / expressjs/multer

Can't write file into folder on win10 using multer

Open
#507 4 comments 2 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.