formidable模块的方法和属性

formidable模块实现了上传和编码图片和视频。它支持GB级上传数据处理,支持多种客户端数据提交。

  1. 引入formidable模板
var http = require("http");
var fs = require("fs");
var url = require("url");
var formidable = require("formidable");
  1. 创建服务器,然后通过GET方式获取到URL,继而找到我们在前台输入的路径
var pathname = url.parse(req.url,true).pathname;
  1. 创建一个名为upload的HTML,通过form实现图片上传
姓名:
年龄:
图像:

  1. 通过pathname可以判断用户是否提交信息。

var form = new formidable.IncomingForm();创建一个form表单

form里面的parse方法解析node.js中request请求中包含的form表单提交的数据,回调函数里面会有我们在前端提交的字段(fileds),以及图片的详细信息(files)。
返回的字段是一个对象,如果想保存到文档里面,需要解析成字符串。

如果想吧上传后的图片保存到文件夹里面,我们首先要回的图片的路径,然后看是否有这个文件夹,如果没有创建一个文件夹,将图片保存到该路径下,并已该图片的原始名命名

if(pathname == "/upload"){
        var form = new formidable.IncomingForm();
        form.parse(req,function (err,fileds,files) {
            if(err){
                return console.log(err);
            }else{
                var dataFileds = JSON.stringify(fileds);
                fs.writeFileSync("22.txt",dataFileds);
                console.log(files);
                var rs = fs.createReadStream(files.img.path);
                if(!fs.existsSync("img")){
                    fs.mkdirSync("img");
                }
                var ws = fs.createWriteStream("./img/"+files.img.name);
                rs.pipe(ws);
                rs.on("end",function () {
                    res.setHeader("Content-type","text/html;charset=utf-8")
                    res.write("上传成功");
                    res.end();
                })
            }

你可能感兴趣的:(formidable模块的方法和属性)