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);