Nodejs 请教express3.5怎么配置上传文件路径呢?
Nodejs 请教express3.5怎么配置上传文件路径呢?
connect3.0以后不建议使用bodyParser()了, 改用 app.use(connect.urlencoded()) app.use(connect.json()) 该嗯么配置上传文件路径呢
Nodejs 请教express3.5怎么配置上传文件路径呢?
在Express 3.5中配置文件上传功能需要使用一些中间件来处理文件上传。Connect 3.0之后,bodyParser()
不再推荐使用,而是应该使用bodyParser.urlencoded()
和bodyParser.json()
来解析表单数据和JSON数据。
为了处理文件上传,你可以使用multer
库。Multer是一个专门为处理multipart/form-data
的中间件,主要用于上传文件。
安装Multer
首先,你需要安装Multer:
npm install multer --save
配置Multer
接下来,你需要配置Multer来指定文件上传的目标路径。以下是一个简单的例子,展示了如何配置Multer来处理文件上传,并将文件保存到指定目录。
var express = require('express');
var app = express();
var multer = require('multer');
// 设置存储引擎
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, './uploads/') // 指定文件保存路径
},
filename: function (req, file, cb) {
cb(null, file.fieldname + '-' + Date.now()) // 指定文件名
}
});
var upload = multer({ storage: storage });
// 使用Multer中间件
app.use(express.urlencoded({ extended: false }));
app.use(express.json());
// 示例路由:处理文件上传
app.post('/upload', upload.single('file'), function (req, res, next) {
// 文件保存在req.file
if (!req.file) {
return res.status(400).send('No file uploaded.');
}
res.send('File uploaded successfully!');
});
app.listen(3000, function () {
console.log('Server is running on port 3000');
});
解释
- 设置存储引擎:
multer.diskStorage()
方法用于定义文件存储的位置和文件名。 - 配置Multer:创建一个
multer
实例,并将其传递给upload.single('file')
,这表示处理单个文件上传,文件字段名为file
。 - 路由处理:
/upload
路由会处理文件上传请求,文件会被保存到./uploads/
目录下。 - 错误处理:如果未接收到文件,则返回400状态码并提示“没有文件上传”。
这样,你就可以成功配置Express 3.5来处理文件上传,并将文件保存到指定路径。
Google 不到答案吗?
找半天,木有啊
顶一下,没有人回答么,都没有人做过文件上传么
app.use(express.bodyParser({
keepExtensions: true,
uploadDir: __dirname + '/temp',
limit: '20mb'
}))
继续用吧,等你升到4.0再换
3楼正解
可以试试我写的 express-fileuploader,或者直接使用 connect-multiparty
之类的 multiparty parser。
var express = require('express');
var mutilpart = require('connect-multiparty');
var app = express();
app.use(’/upload/image’, mutilpart());
app.post(’/upload/image’, function(req, res, next) {
// req.files
});
正解,谢谢
在Express 3.5中配置文件上传,你需要使用multer
中间件来处理文件上传。以下是一个简单的示例,展示了如何设置上传文件路径。
首先,安装multer
:
npm install multer --save
然后,在你的Express应用中进行如下配置:
var express = require('express');
var app = express();
var multer = require('multer');
// 配置文件存储路径
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, 'uploads/') // 设置文件保存路径
},
filename: function (req, file, cb) {
cb(null, file.fieldname + '-' + Date.now()) // 设置文件名
}
});
var upload = multer({ storage: storage });
// 创建一个上传单个文件的路由
app.post('/upload', upload.single('file'), function (req, res, next) {
// 文件保存到 `uploads/` 目录下
res.send(req.file);
});
// 启动服务器
app.listen(3000, function () {
console.log('Server is running on http://localhost:3000');
});
在这个例子中:
destination
函数指定了文件的存储目录。filename
函数设置了保存文件的名称。upload.single('file')
表示允许上传一个名为file
的文件。
确保你有一个名为uploads/
的目录,以便于存放上传的文件。如果该目录不存在,你可以添加一些错误处理逻辑以创建它。
注意:本示例假设你已经正确设置了app.use(express.bodyParser())
或等效的方法来解析请求体。如果你使用的是Express 4.x或更高版本,应该使用express.urlencoded()
和express.json()
来替代旧的bodyParser
方法。