Ticker

6/recent/ticker-posts

Upload file using Node.js with formidable

This example implement web app using Node.js with formidable. formidable is a node.js module for parsing form data, especially file uploads. By default, the uploaded file will be aved in /tmp directory.

To install formidable, run the command in your working directory:
$ npm install formidable

Example code, app.js (tested on Raspberry Pi and Ubuntu):
// run the command to install formidable
// $ npm install formidable
var formidable = require('formidable');
var http = require('http');
var util = require('util');
var fs = require('fs');
var os = require('os');

var app = http.createServer(
function(req, res){
switch(req.method){
case 'GET':
showPage(req, res);
break;
case 'POST':
upload(req, res);
break;
}
}
);
app.listen(8080);

//Display my IP
var networkInterfaces=os.networkInterfaces();

for (var interface in networkInterfaces) {

networkInterfaces[interface].forEach(
function(details){

if (details.family=='IPv4'
&& details.internal==false) {
console.log(interface, details.address);
}
});
}

function showPage(req, res){
fs.readFile(__dirname + '/index.html',
function (err, data) {
if (err) {
res.writeHead(500);
return res.end('Error loading index.html');
}

res.writeHead(200);
res.end(data);
});
}

function upload(req, res){

var form = new formidable.IncomingForm();

form.parse(req, function(err, fields, files) {
res.writeHead(200, {'content-type': 'text/plain'});
res.end('File uploaded!');
console.log("Upload completed");
console.log(util.inspect(files));
});

}

index.html



Upload file


Test Node.js with formidable













Upload file using Node.js with formidable, tested on Raspberry Pi.

إرسال تعليق

0 تعليقات