i'm working on uploading file app using multer npm module.
the multer function have defined allow single file uploaded file system. works during run time; issue after upload file error below. advice appreciated on look.
error:
unexpected field error: unexpected field @ makeerror (c:\users\dev\webstormprojects\crunch\node_modules\multer\lib\make-error.js:12:13) @ wrappedfilefilter (c:\users\dev\webstormprojects\crunch\node_modules\multer\index.js:39:19) @ busboy.<anonymous> (c:\users\dev\webstormprojects\crunch\node_modules\multer\lib\make-middleware.js:97:7) @ busboy.emit (events.js:118:17) @ busboy.emit (c:\users\dev\webstormprojects\crunch\node_modules\multer\node_modules\busboy\lib\main.js:31:35) @ partstream.<anonymous> (c:\users\dev\webstormprojects\crunch\node_modules\multer\node_modules\busboy\lib\types\multipart.js:205:13) @ partstream.emit (events.js:107:17) @ headerparser.<anonymous> (c:\users\dev\webstormprojects\crunch\node_modules\multer\node_modules\busboy\node_modules\dicer\lib\dicer.js:51:16) @ headerparser.emit (events.js:107:17) @ headerparser._finish (c:\users\dev\webstormprojects\crunch\node_modules\multer\node_modules\busboy\node_modules\dicer\lib\headerparser.js:70:8) app.js
var multer = require('multer'); var app = express(); var fs = require('fs'); //. . . var upload = multer({ dest: 'upload/'}); var type = upload.single('file'); app.post('/upload', type, function (req,res) { var tmp_path = req.files.recfile.path; var target_path = 'uploads/' + req.files.recfile.name; fs.readfile(tmp_path, function(err, data) { fs.writefile(target_path, data, function (err) { res.render('complete'); }) }); index.hbs
<form action="/upload" method="post" enctype="multipart/form-data"> <input type="file" name='recfile' placeholder="select file"/> <br/> <button>upload</button> </form> #package.json "dependencies": { "body-parser": "~1.13.2", "cookie-parser": "~1.3.5", "debug": "~2.2.0", "easy-zip": "0.0.4", "express": "~4.13.1", "hbs": "~3.1.0", "less-middleware": "1.0.x", "morgan": "~1.6.1", "multer": "~1.0.0", "serve-favicon": "~2.3.0" } }
var multer = require('multer'); var upload = multer({ dest: 'upload/'}); var fs = require('fs'); /** permissible loading single file, value of attribute "name" in form of "recfile". **/ var type = upload.single('recfile'); app.post('/upload', type, function (req,res) { /** when using "single" data come in "req.file" regardless of attribute "name". **/ var tmp_path = req.file.path; /** original name of uploaded file stored in variable "originalname". **/ var target_path = 'uploads/' + req.file.originalname; /** better way copy uploaded file. **/ var src = fs.createreadstream(tmp_path); var dest = fs.createwritestream(target_path); src.pipe(dest); src.on('end', function() { res.render('complete'); }); src.on('error', function(err) { res.render('error'); }); });
Comments
Post a Comment