دوره‌ای که می‌تونه مسیر شغلیت رو عوض کنه! دوره‌ای که می‌تونه مسیر شغلیت رو عوض کنه!
🎯 ثبت نام

آموزش آپلود فایل در Node.js با استفاده از ماژول Formidable

یکی از قابلیت‌های مهم Node.js ، امکان آپلود فایل به سرور است. در این مقاله، نحوه استفاده از ماژول Formidable برای آپلود فایل‌ها در Node.js را بررسی خواهیم کرد.

نصب و راه‌اندازی ماژول Formidable

برای آپلود فایل‌ها در Node.js، ابتدا باید ماژول Formidable را نصب کنید. این ماژول به شما اجازه می‌دهد تا فایل‌های آپلود شده را پردازش و ذخیره کنید. برای نصب ماژول، از دستور زیر استفاده کنید:



    C:\Users\Your Name>npm install formidable

            

پس از این که ماژول Formidable را نصب و آماده کردید، می توانید با استفاده از تابع ()require همانند کد زیر، آن را به پروژه خود اضافه کنید :


    
    var formidable = require('formidable');

ایجاد فرم HTML برای آپلود فایل

در مرحله بعد، یک فرم HTML ساده ایجاد می‌کنیم که به کاربر اجازه می‌دهد تا فایلی را برای آپلود انتخاب کند. این فرم به وسیله یک سرور Node.js رندر می‌شود:



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

این فرم از متد POST برای ارسال فایل استفاده می‌کند و داده‌ها را به آدرس /fileupload ارسال می‌کند.

پردازش فایل آپلود شده

با استفاده از ماژول Formidable، فایل آپلود شده را می‌توان به محض دریافت، پردازش کرد و اطلاعات آن را استخراج کرد:



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

 

در این کد، فایل آپلود شده به صورت خودکار در یک پوشه موقت ذخیره می‌شود.

ذخیره فایل در مسیر مورد نظر

پس از پردازش فایل آپلود شده، می‌توان آن را به مسیر دلخواه منتقل کرد. برای این کار از ماژول fs استفاده می‌کنیم:



    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.path;
                var newpath = 'C:/Users/Your Name/' + files.filetoupload.name;
                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);

    

سایر دوره های تحلیل داده
1403/06/11 3154 0
نظرات شما

نظرات خود را ثبت کنید...