NodeJS Multer ile Dosya Yükleme

Nodejs ve Multer ile dosya yükleme işlemini basit ve hatasız hale getirin. Nodejs dosya yükleme


Öncelikle multer nedir ona bi göz atalım:

  • Multer, genellikle dosya yüklemeleri için kullanılan, çok parçalı/form verisi isteklerini işlemeye yönelik popüler bir Node.js ara yazılımıdır.
  • Yüklenen dosyalara erişim için temiz ve yapılandırılmış bir yol sağlayarak, gelen dosya verilerini ayrıştırma işlemini basitleştirir.

Kurulum

  1. Komut istemcisi veya terminalinizi açıp proje dizininize gidin.
  2. Npm veya yarn kullanarak Multer'i kurun
npm install multer

Express sunucuyu hazırlama

1. Server.js (veya tercih ettiğiniz herhangi bir ad) adında yeni bir dosya oluşturun.

2. Gerekli modülleri ekleyin:

const express = require('express');
const multer = require('multer');

3. Express uygulama örneği oluşturun.

const app = express();

Multer'ı Yapılandırma

  1. Depolama yapılandırma nesnesi oluşturun:
    1. Bir depolama hedefi seçin (yerel dosya sistemi, bulut depolama vb.).
    2. Yüklenen dosyalar için özel bir dizin kullanmayı düşünün.
const storage = multer.diskStorage({
  destination: './uploads/', // Set your desired upload directory
  filename: (req, file, cb) => {
    // Customize filename (optional)
    cb(null, Date.now() + '-' + file.originalname);
  }
});

2. Multer yükleme örneği oluşturun:

const upload = multer({ storage });

Yükleme Rotası Oluşturun

  1. Yükleme uç noktanız için bir rota işleyicisi tanımlayın.
  2. Yüklenen dosyayı işlemek için rota işleyicinizden önce upload.single() ara yazılımını kullanın.
  3. Yüklenen dosya ayrıntılarına (ör. dosya adı, yol, boyut) req.file nesnesinden erişin:
app.post('/upload', upload.single('myFile'), (req, res) => {
  if (req.file) {
    console.log('File uploaded successfully:', req.file.filename);
    // Perform further actions with the uploaded file (e.g., save to database, process it)
    res.json({ message: 'File uploaded successfully!' });
  } else {
    console.error('Error uploading file!');
    res.status(400).json({ message: 'Failed to upload file.' });
  }
});

HTML Formu Oluşturma (İstemci Tarafı)

  1. Dosya türünde bir giriş öğesi içeren bir HTML formu oluşturun.
  2. Formun action özelliğini yükleme rotanızı işaret edecek şekilde ayarlayın:
<form action="/upload" method="POST" enctype="multipart/form-data">
  <input type="file" name="myFile">
  <button type="submit">Upload File</button>
</form>

Uygulamayı çalıştırın

  1. Sunucuyu node server.js kullanarak başlatın.
  2. Forma web tarayıcınızdan erişin (bağlantı noktanıza bağlı olarak genellikle varsayılan olarak http://localhost:3000/ adresinde).
  3. Bir dosya seçin ve formu gönderin.

Hata yönetimi

  1. Dosya yükleme sırasında eksik dosyalar, boyut sınırlarının aşılması veya depolama sorunları gibi olası hataları ustalıkla ele alın.
  2. Müşteriye uygun hata mesajlarıyla yanıt verin.

Güvenlik

  1. Güvenlik açıklarını önlemek için dosya adlarını temizleyin veya kriptografik karma kullanın.
  2. Kötü amaçlı içeriğin yüklenmesini önlemek için dosya türlerini doğrulayın.
  3. Kullanıcıların yükleme kısıtlamalarını atlayamayacağından emin olmak için giriş doğrulaması uygulayın.

Ek İpuçları

  1. Proje gereksinimlerinize göre depolama hedeflerini özelleştirin.
  2. Ölçeklenebilirlik ve güvenilirlik için bulut depolama sağlayıcılarını (ör. AWS S3, Google Cloud Storage) kullanmayı düşünün.
  3. Belirli kullanım durumları için gelişmiş Multer özelliklerini (ör. çoklu dosya yükleme, boyut sınırları, özel doğrulama) keşfedin.

Bu yönergeleri izleyerek Multer'ı kullanarak Node.js uygulamalarınızda dosya yüklemelerini etkili bir şekilde gerçekleştirebilirsiniz. Kodu ve yapılandırmayı projenizin özel ihtiyaçlarına göre uyarlamayı unutmayın.