自学Node.js 五:学习node-formidable

   

      使用第三方包node-formidable,需要通过Node.js的包管理NPM来安装外部包,我们已安装好的Node.js环境一般都已经默认把NPM安装到机器上,我们可以在cmd下通过命令行在NPM中安装formidable包:

npm install formidable

    
     如下截图,成功安装formidable包:


    我们可以通过formidable的官方demo来了解一下这个包是如何引入和使用的:
var formidable = require('formidable'),
    http = require('http'),
    sys = require('sys');

http.createServer(function(req, res) {
    if (req.url == '/upload' && req.method.toLowerCase() == 'post') {
        // parse a file upload
        var form = new formidable.IncomingForm();

        //这里formidable会对upload的对象进行解析和处理
        form.parse(req, function(err, fields, files) {
            res.writeHead(200, {'content-type': 'text/plain'});
            res.write('received upload:\n\n');
            res.end(sys.inspect({fields: fields, files: files}));
        });
        return;
    }

    // show a file upload form
    res.writeHead(200, {'content-type': 'text/html'});
    res.end(
        '<form action="/upload" enctype="multipart/form-data" '+
            'method="post">'+
            '<input type="text" name="title"><br>'+
            '<input type="file" name="upload" multiple="multiple"><br>'+
            '<input type="submit" value="Upload">'+
            '</form>'
    );
}).listen(8888);


    如果我们要做一个上传图片并预览的功能,需要做以下几点:
  • 通过formidable在start表单中添加一个文件上传元素(添加一个multipart/form-data的编码类型,移除此前的文本区,添加一个文件上传组件)
  • 在form.parse中处理上传的文件保存到本地,再输出到html上面。

   当然一个上传功能包的使用并不是官方Demo说的那么简单,我们可以在WebStorm中看到node-formidable包的组成结构以及其内部函数,IncomingForm结构图如下:


    

   建议大家学习node-formidable前,先参照下面两篇文章:


nodejs-post文件上传原理详解

node-formidable详解



你可能感兴趣的:(node.js,Node-formiable)