上传图片node.jsexpression

我试图上传图像到服务器在node.js和expression。

我的玉像上传表格:

include layout div.container h2 Image Upload Form form#fileUpload(method="post" action="/upload" enctype="multipart/form-data") label(for="payload") Select a file to upload: input#payload(type="file" name="myFile" accept="image/*") br button#upload Upload 

并在我的index.js我处理响应和显示forms是:

 router.get('/imageUpload', function(req, res, next){ res.render('imageUpload', { title: 'Image upload form' }); }); router.post("/upload", function(req, res, next){ console.log(req.files); }); 

我得到undefined错误,当我尝试获取req.files ; 我是新来的节点,所以plz的帮助。 谢谢。

最后形象上传是比卢卡斯科斯塔帮助知道我分享我的代码

第1步:从官方网站强大的安装强大

在提示符上运行命令

 npm install formidable@latest 

第2步。我的图片上传forms在.jade

 include layout div.container h2 Image Upload Form form#fileUpload(method="post" action="/upload" enctype="multipart/form-data") label(for="payload") Select a file to upload: input#payload(type="file" name="myFile" accept="image/*") br button#upload Upload 

第3步。在我的情况下添加模块在您的文件我有index.js

 var express = require('express'); var router = express.Router(); var util = require("util"); var fs = require("fs"); var formidable = require('formidable'); var path = require('path'); /* GET home page. */ router.get('/', function(req, res, next) { res.render('index', { title: 'Express', dataGet: "data" }); }); router.get('/about', function(req, res, next) { res.render('index', { title: 'C' }); }); router.get('/imageUpload', function(req, res, next){ res.render('imageUpload', { title: 'Image upload form' }); }); router.post("/upload", function(req, res, next){ var form = new formidable.IncomingForm(); form.parse(req, function(err, fields, files) { // `file` is the name of the <input> field of type `file` console.log(files); res.writeHead(200, {'content-type': 'text/plain'}); res.write('received upload:\n\n'); res.end(util.inspect({fields: fields, files: files})); }); form.on('error', function(err) { console.error(err); }); form.on('progress', function(bytesReceived, bytesExpected) { var percent_complete = (bytesReceived / bytesExpected) * 100; console.log(percent_complete.toFixed(2)); }); form.on('end', function(fields, files) { /* Temporary location of our uploaded file */ var temp_path = this.openedFiles[0].path; /* The file name of the uploaded file */ var file_name = this.openedFiles[0].name; /* Location where we want to copy the uploaded file */ var new_location = 'F:/node/expressApp/myAppExpress/public/images/'; fs.readFile(temp_path, function(err, data) { fs.writeFile(new_location + file_name, data, function(err) { fs.unlink(temp_path, function(err) { if (err) { console.error(err); } else { console.log("success!"); } }); }); }); }); }); router.get('/:username', function(req, res) { // make somethings with username var username = req.params.username; console.log("get username"+ username); }); module.exports = router; 

全做完了! 希望这会帮助一些人:-)

undefined变得因为不存在req.files

修改为:

console.log(req.body) // or req.body.myFile to get information of the input

对于上传图片,我build议你使用强大的 ,有些这样的 。