自學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前,先參照下面兩篇文章:
發佈了323 篇原創文章 · 獲贊 25 · 訪問量 159萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章