nodejsでファイルアップロードを処理する(1)

2963 ワード

1外部モジュールnode-formidableのインストール
このモジュールの詳細については、「」を参照してください.https://github.com/felixge/node-formidableアップロードファイルの詳細を解析することで、postデータを処理するようにアップロードファイルを処理することができます.
nmpでformidableモジュールをインストールします
C:\Users\xxx>npm install formidable
[email protected] node_modules\formidable
インストール成功
2サーバモジュールの上書き
var formidable = require('formidable'),http = require("http"),sys = require('sys');

function start(route, handle) {
	function onRequest(request, response) {
		if(request.url == '/upload' && request.method.toLowerCase() == 'post'){
			var form = new formidable.IncomingForm();
			form.parse(request,function(error,fields,files){
				response.writeHead(200, {'content-type':'text/plain'});
				response.write('receive upload:

'); response.end(sys.inspect({fields: fields,files:files})); }); return; } response.writeHead(200,{'content-type':'text/html'}); response.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>' ); } http.createServer(onRequest).listen(8888); console.log("Server has started."); } exports.start = start;

3ファイルをアップロードして/uploadページにジャンプして結果を表示
jsファイルのアップロード
receive upload:
{ fields: { title: '2014 world cup' },
  files: 
   { upload: 
      { domain: null,
        _events: {},
        _maxListeners: 10,
        size: 301,
        path: 'C:\\Users\\xxx\\AppData\\Local\\Temp\\53608004f2340d6b0697e387eeaf3a91',
        name: 'index.js',
        type: 'application/javascript',
        hash: null,
        lastModifiedDate: Wed Jun 25 2014 16:37:31 GMT+0800 (China Standard Time),
        _writeStream: [Object] } } }

png画像をアップロード
receive upload:

{ fields: { title: '2014 world cup' },
  files: 
   { upload: 
      { domain: null,
        _events: {},
        _maxListeners: 10,
        size: 429423,
        path: 'C:\\Users\\xxx\\AppData\\Local\\Temp\\2a4c267e11f0c3c3bae6c7e552e3f79f',
        name: 'chart1.png',
        type: 'image/png',
        hash: null,
        lastModifiedDate: Wed Jun 25 2014 16:49:18 GMT+0800 (China Standard Time),
        _writeStream: [Object] } } }