gpt4 book ai didi

node.js - 使用 Express 上传文件(node.js)

转载 作者:太空宇宙 更新时间:2023-11-04 01:05:40 24 4
gpt4 key购买 nike

我正在尝试使用node.js和express 4.0.0制作一个极其简单的文件上传服务器。根据http://howtonode.org/really-simple-file-uploads我想我应该得到“req.files”,但它不存在(未定义)。

var express = require('express')
var fs = require('fs')
var app = express()

app.get('/', sendForm)
app.post('/upload', uploadFile)
app.listen(8000)

function sendForm(req, res)
{
// a form with a <input type="file">
res.send('<!doctype html><html><head></head><body><form action=\"/upload\" method=\"post\" enctype=\"multipart/form-data\"><input type=\"file\" name=\"displayImage\"><button type=\"submit\">submit</button></form></body></html>')
}

function uploadFile(req, res)
{
console.log(req.files) // prints undefined
res.redirect('back')
}

一些网站建议添加“app.use(bodyParser)”以及由“app.configure()”调用的此类内容。据我所知,“app.configure”已从express 4.0.0 中删除。

为什么 req.files 不存在?

最佳答案

我找到Formidabble易于使用,这就是您使用它的方式:

var formidable = require('formidable');
var fs = require('fs');

module.exports.upload = function (req, res, next) {
var form = new formidable.IncomingForm();

form.parse(req, function(err, fields, files) {
if ('file' in files) {
var file = files['file'];

// Do something with file

module.exports._deleteFiles(files);
res.send(200);
} else {
module.exports._deleteFiles(files);
res.send(400);
}
});
};

module.exports._deleteFiles = function (files) {
// Delete temporary files
for (var f in files) {
fs.unlink(files[f].path);
}
};

关于node.js - 使用 Express 上传文件(node.js),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23280348/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com