expressjs / expressjs/multer

Why can not upload files from the Android web browser (Chrome)?

Open
#443 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
12.1k
Forks
1.1k
Avg merge
8d 2h
Merged PRs (30d)
21

Description

#259 Hello,
Multer file uploads is so good!
But there is a problem. Web browser, Apple ios safari's file uploads well, but uploading from Chrome on Android will cause an error in the file upload function. I could not find the cause(500 err). The example code uses a generic multer file upload code, but it does not work. Only in the web browser of Android.
* code *
var i=0; //
var maxFileCount = 6;
var maxFileSize = 1 * 1000 * 1000;
var storage = multer.diskStorage({
destination: function (req, file, callback) {
callback(null, './tmp/uploads/images');
},
filename: function (req, file, callback) {
callback(null, Date.now() + '_' + file.originalname);
}
});
router.post('/ckedit/upload', function(req, res) {
console.log(">>>>> request ckeditor upload ");
upload(req, res, function(err) {
console.log("req.body : ", req.body);
var realUrl = '/uploads/images';
var file = req.file;
console.log(">>> file : " + file.originalname);
var originalFileNm = file.originalname;
var savedFileNm = file.filename;
//var fileDest = file.destination;
var fileSize = file.size;
console.log("originalFileNm : '%s', savedFile: '%s', size : '%s'", originalFileNm, savedFileNm, fileSize);
console.log(">>> savedFileNm = " + savedFileNm);
//console.log(">>>> fileFullPath = " + fileDest);
console.log(">>> req.body.CKEditorFuncNum : " + req.query.CKEditorFuncNum);
if(err) {
//return res.send(err);
return res.send(""
+ "alert( error : " + JSON.stringify(err) +")"
+ "");
} else {
//return res.json({result : 'OK', fileName : savedFileNm, fileFullPath : fileFullPath, fileSize : fileSize});
return res.send("window.parent.CKEDITOR.tools.callFunction("+
+ req.query.CKEditorFuncNum
+ ",'"
+ realUrl + "/" + savedFileNm
+ "',' file upload complete!'"
+ ");");
}
});
});

i guess, this part is problem. If i add this part, then get an error.
{storage : storage, limits: {fileSize: maxFileSize}}
....
POST /ckedit/upload 500 607.514 ms - 7458

but Except for this part, it works fine. Only in the Android web browser ..

---> i found a problem!
"limits: {fileSize: maxFileSize}" this option is a problem..
get a problem when insert this part.
Do we need the busboy installation?

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.