Node.js Dosyaları Yükle
Müthiş Modül
Dosya yüklemeleriyle çalışmak için "Formidable" adlı çok iyi bir modül var.
Formidable modülü, NPM kullanılarak indirilebilir ve kurulabilir:
C:\Users\Your Name>npm install formidable
Formidable modülünü indirdikten sonra modülü herhangi bir uygulamaya dahil edebilirsiniz:
var formidable = require('formidable');
Dosyaları yükle
Artık Node.js'de kullanıcının bilgisayarınıza dosya yüklemesine izin veren bir web sayfası oluşturmaya hazırsınız:
1. Adım: Bir Yükleme Formu Oluşturun
Yükleme alanı olan bir HTML formu yazan bir Node.js dosyası oluşturun:
Örnek
Bu kod bir HTML formu üretecektir:
var http = require('http');
http.createServer(function
(req, res) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write('<form
action="fileupload" method="post" enctype="multipart/form-data">');
res.write('<input
type="file" name="filetoupload"><br>');
res.write('<input
type="submit">');
res.write('</form>');
return res.end();
}).listen(8080);
2. Adım: Yüklenen Dosyayı Ayrıştırın
Yüklenen dosyayı sunucuya ulaştığında ayrıştırabilmek için Formidable modülünü dahil edin.
Dosya karşıya yüklenip ayrıştırıldığında, bilgisayarınızdaki geçici bir klasöre yerleştirilir.
Örnek
Dosya yüklenecek ve geçici bir klasöre yerleştirilecektir:
var http = require('http');
var formidable = require('formidable');
http.createServer(function
(req, res) {
if (req.url == '/fileupload') {
var form = new formidable.IncomingForm();
form.parse(req,
function (err, fields, files) {
res.write('File
uploaded');
res.end();
});
} else {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write('<form
action="fileupload" method="post" enctype="multipart/form-data">');
res.write('<input
type="file" name="filetoupload"><br>');
res.write('<input
type="submit">');
res.write('</form>');
return res.end();
}
}).listen(8080);
3. Adım: Dosyayı Kaydedin
Bir dosya sunucuya başarıyla yüklendiğinde, geçici bir klasöre yerleştirilir.
Bu dizinin yolu, parse()
yöntemin geri çağırma işlevinde üçüncü argüman olarak iletilen "dosyalar" nesnesinde bulunabilir.
Dosyayı istediğiniz klasöre taşımak için Dosya Sistemi modülünü kullanın ve dosyayı yeniden adlandırın:
Örnek
fs modülünü ekleyin ve dosyayı geçerli klasöre taşıyın:
var http = require('http');
var formidable = require('formidable');
var fs = require('fs');
http.createServer(function
(req, res) {
if (req.url == '/fileupload') {
var form = new formidable.IncomingForm();
form.parse(req,
function (err, fields, files) {
var
oldpath = files.filetoupload.filepath;
var
newpath = 'C:/Users/Your Name/' + files.filetoupload.originalFilename;
fs.rename(oldpath, newpath, function (err) {
if (err) throw
err;
res.write('File uploaded
and moved!');
res.end();
});
});
} else {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write('<form
action="fileupload" method="post" enctype="multipart/form-data">');
res.write('<input
type="file" name="filetoupload"><br>');
res.write('<input
type="submit">');
res.write('</form>');
return res.end();
}
}).listen(8080);