Multer Kütüphanesi ile Dosya yükleme

Merhaba arkadaşlar bu yazıda NodeJS ile dosya yükleme işlemi yapacağız. NodeJS’nin paket yönetim sistemi olan npm‘den Multer kütüphanesinin kullanımına baktığımızda oldukça basittir. View kısmında bir form oluşturalım ve inputları girelim bu kısımda başka yapacağımız işlem yok.

<form id="uploadForm" enctype="multipart/form-data" action="/api/photo" method="post">
      <input type="file" name="userPhoto" class="form-control"/> 
      <input type="submit" class="btn btn-default" value="Dosya Yükle" name="submit">
</form>

daha sonra server kısmına geçmeden önce buradan Multer kütüphanesini projemize dahil edelim daha sonra yüklenecek olan dosylara bir yol belirtmemiz gerekiyor uploads adında bir klasör oluşturalım.

var upload = multer({ dest: 'uploads/' })

daha önce oluşturduğumuz formu post metodu ile buraya yolluyoruz ve kontrol işlemini gerçekleştiriyoruz.

var express    =       require("express");
var multer     =       require('multer');
var app        =       express();
var done       =       false;
 
app.use(multer({ dest: './uploads/',
 rename: function (fieldname, filename) {
    return filename+Date.now();
  },
onFileUploadStart: function (file) {
  console.log(file.originalname + ' is starting ...')
},
onFileUploadComplete: function (file) {
  console.log(file.fieldname + ' uploaded to  ' + file.path)
  done=true;
}
}));
 
app.get('/',function(req,res){
      res.sendfile("index.html");
});
 
app.post('/api/photo',function(req,res){
  if(done==true){
    console.log(req.files);
    res.end("Dosya Yüklendi");
  }
});
 
app.listen(3000,function(){
    console.log("3000'ci port çalışıyor.");
});

Yazıyı burada sonlandırıyorum. Proje dosyalarına buradan ulaşabilirsiniz.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>