0
点赞
收藏
分享

微信扫一扫

详解原生nodejs+formidable上传图片到image文件夹


原生nodejs+formidable上传图片到image

  1. 安装formidable
    在项目目录文件夹下下载安装
    代码:​​​npm i formidable​


详解原生nodejs+formidable上传图片到image文件夹_请求参数


项目文件夹下的node_modules里有这个文件就行


  1. server.js文件

var http = require('http');
const fs = require('fs');
const server = http.createServer();
const path = require('path');
//引入formidable模块
const formidable = require('formidable');

server.on('request', function (req, res) {
const url = req.url;
if (url === '/upload') {
//创建解析对象
var form = new formidable.IncomingForm();
//是否保留上传文件的后缀名
//如果不写就会长传一个没有后缀的文件
form.keepExtensions = true;
//解析表单 form.parse
form.parse(req, function (err, fields, files) {
if (err) {
return console.log(err);
} else {
var dataFields = JSON.stringify(fields);
//读取文件路径
var rs = fs.createReadStream(files.img.filepath);
//写入文件路径
var ws = fs.createWriteStream("./image/" + files.img.name);
rs.pipe(ws);
rs.on("end", function () {
res.setHeader('content-type', 'text/html;charset=utf-8');
res.end("<h1 align='center'>上传成功</h1>");
});
}
});
} else {
res.end('404 not found!!!!!!');
}
});
server.listen(3000, "127.0.0.1", function () {
console.log("server is listening 127.0.0.1:3000");
});

req 请求参数
err请求出错信息
fields普通请求参数
files上传文件请求参数

  1. index,html文件

<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<title>Title</title>
</head>

<body>
<form action="http://127.0.0.1:3000/upload" method="post" enctype="multipart/form-data" target="_blank">
<input type="file" name="img"><br /><br />
<input type="submit" value="提交">
</form>

</body>

</html>


举报

相关推荐

0 条评论