Cara menyimpan file pdf di database mysql menggunakan node js

Contoh Nodejs ini membantu mengunggah file menggunakan multer framework dan MySQL. Saya akan membuat template untuk mengunggah file menggunakan ejs. MySQL digunakan untuk menyimpan file dan informasi ke dalam database

Ini adalah fitur yang sangat umum yang dimiliki setiap aplikasi. Anda dapat menggunakan unggahan file untuk gambar, pdf, excel, atau dokumen apa pun

Multer adalah sebuah simpul. js middleware untuk menangani multipart/form-data, yang terutama digunakan untuk mengunggah file. Anda dapat mengunggah satu atau beberapa file menggunakan multer. Sangat mudah dan sederhana untuk diintegrasikan dengan nodejs

Kami akan mencapai fungsi berikut dalam aplikasi ini

  • Buat aplikasi Nodejs menggunakan package.json
  • Buat koneksi Nodejs dengan MySQL
  • Unggah file tampilan HTML menggunakan nodejs ejs
  • Unggah file menggunakan kerangka Multer nodejs
Iklan

Lihat tutorial NodeJS Lainnya,

  • Node. Contoh Unggah File js Menggunakan Multer dan MySQL
  • Pengunggahan Gambar Amazon S3 menggunakan Nodejs
  • Contoh Nodejs untuk Mengunggah dan Menyimpan Gambar ke MySQL Menggunakan Express
  • Tutorial NodeJS untuk Menambah, Mengedit dan Menghapus Record Menggunakan MySQL

File dan folder berikut akan berpartisipasi dalam aplikasi ini

  • package.json. File ini akan memiliki semua informasi paket dari aplikasi nodejs ini
  • app.js. Ini adalah file entri dari aplikasi nodejs. Kami akan memiliki semua logika di sini dari mengunggah file untuk menyimpan data
  • tampilan/indeks. ejs. Berisi tampilan HTML untuk mengunggah file
  • upload/. Berisi tampilan HTML untuk mengunggah file

Unggah File Tunggal/Banyak Menggunakan Multer dan MySQL

Mari terapkan unggahan file nodejs dengan multer dan MySQL. Saya berasumsi Anda memiliki nodejs > 6 dan npm > 5. Anda juga memiliki server MySQL. Mari buat folder file-upload-example/_ ke dalam drive apa saja

Buat tabel MySQL Ke Database

Sekarang buka bahasa query MySQL, Kami akan membuat tabel file menggunakan skrip sql di bawah ini. File ini akan memiliki kolom nama, jenis, deskripsi, dan ukuran

Iklan
--
-- Table structure for table `file`
--

CREATE TABLE `file` (
  `id` int(11) NOT NULL,
  `name` varchar(255) NOT NULL,
  `description` text NOT NULL,
  `type` varchar(100) NOT NULL,
  `size` int(11) NOT NULL,
  `updated_by` varchar(255) NOT NULL,
  `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Instal Ketergantungan yang Diperlukan untuk Pengunggahan File

Buat file package.json ke dalam folder file-upload-example/

{
  "name": "nodejs-upload-image-mysql-multer",
  "version": "1.0.0",
  "description": "",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": {
    "name": "Adam",
    "email": "[email protected]",
    "url": "https://www.js-tutorials.com/"
  },
  "license": "MIT",
  "dependencies": {
    "body-parser": "^1.16.1",
    "ejs": "^2.5.6",
    "express": "^4.14.1",
    "multer": "^1.3.1",
    "mysql": "^2.13.0"
  },
  "devDependencies": {
    "nodemon": "^1.18.4"
  }
}
_

Jalankan perintah di bawah ini untuk menginstal dependensi

{
  "name": "nodejs-upload-image-mysql-multer",
  "version": "1.0.0",
  "description": "",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": {
    "name": "Adam",
    "email": "[email protected]",
    "url": "https://www.js-tutorials.com/"
  },
  "license": "MIT",
  "dependencies": {
    "body-parser": "^1.16.1",
    "ejs": "^2.5.6",
    "express": "^4.14.1",
    "multer": "^1.3.1",
    "mysql": "^2.13.0"
  },
  "devDependencies": {
    "nodemon": "^1.18.4"
  }
}
_2

  • cepat. Kami akan mengembangkan API kami menggunakan ExpressJs
  • ejs. Templat JavaScript tersemat untuk tampilan nodejs
  • nodemon. nodemon adalah alat yang membantu mengembangkan
    {
      "name": "nodejs-upload-image-mysql-multer",
      "version": "1.0.0",
      "description": "",
      "main": "app.js",
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
      },
      "author": {
        "name": "Adam",
        "email": "[email protected]",
        "url": "https://www.js-tutorials.com/"
      },
      "license": "MIT",
      "dependencies": {
        "body-parser": "^1.16.1",
        "ejs": "^2.5.6",
        "express": "^4.14.1",
        "multer": "^1.3.1",
        "mysql": "^2.13.0"
      },
      "devDependencies": {
        "nodemon": "^1.18.4"
      }
    }
    3 dalam pengembangan env
  • mysql. gunakan untuk menghubungkan nodejs dengan server mysql
  • multer. Node. js middleware untuk menangani multipart/form-data

Unggah File HTML Menggunakan Bootstrap

Saya menggunakan bootstrap 3 untuk membuat tampilan file unggahan yang mengagumkan, mari buat folder tampilan di bawah aplikasi nodejs dan file

{
  "name": "nodejs-upload-image-mysql-multer",
  "version": "1.0.0",
  "description": "",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": {
    "name": "Adam",
    "email": "[email protected]",
    "url": "https://www.js-tutorials.com/"
  },
  "license": "MIT",
  "dependencies": {
    "body-parser": "^1.16.1",
    "ejs": "^2.5.6",
    "express": "^4.14.1",
    "multer": "^1.3.1",
    "mysql": "^2.13.0"
  },
  "devDependencies": {
    "nodemon": "^1.18.4"
  }
}
4, Kami akan menambahkan kode di bawah ini ke dalam file ini

<div id="mainform" class="container col-sm-12">
<div id="signupbox" class="mainbox col-md-6 col-md-offset-3 col-sm-8 col-sm-offset-2" style="margin-top: 50px;">
<div class="panel panel-info">
<div class="panel-heading">
<div class="panel-title">Upload Image</div>
</div>
<div class="panel-body"><form class="form-horizontal" role="form" action="/api/v1/upload" enctype="multipart/form-data" method="post">&lt;% if (message.length &gt; 0) { %&gt;
<div class="alert alert-<%= status %> col-sm-12">&lt;%= message %&gt;</div>
&lt;% } %&gt;
<div class="form-group"><label class="col-md-3 control-label" for="image">Profile Image</label>
<div class="col-sm-9"><input class="form-control" accept="" name="profile" type="file"></div>
</div>
<div class="form-group"><!-- Button -->
<div class="col-md-offset-3 col-md-9"><button id="btn-signup" class="btn btn-info" type="submit"><i class="icon-hand-right"></i> &nbsp; Upload</button></div>
</div>
</form></div>
</div>
</div>
</div>

Kami telah membuat formulir HTML dan menambahkan tindakan '/api/v1/unggah', yang akan digunakan titik akhir saat formulir HTML akan diposkan

Anda akan mendapatkan data formulir ke dalam

{
  "name": "nodejs-upload-image-mysql-multer",
  "version": "1.0.0",
  "description": "",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": {
    "name": "Adam",
    "email": "[email protected]",
    "url": "https://www.js-tutorials.com/"
  },
  "license": "MIT",
  "dependencies": {
    "body-parser": "^1.16.1",
    "ejs": "^2.5.6",
    "express": "^4.14.1",
    "multer": "^1.3.1",
    "mysql": "^2.13.0"
  },
  "devDependencies": {
    "nodemon": "^1.18.4"
  }
}
_5 titik akhir, Mari buat API istirahat ini ke dalam file app.js

Buat Aplikasi Node dan Mulai Server Ekspres

Buat aplikasi nodejs dan server ekspres

var express = require('express')
  , routes = express.Router()
  , http = require('http')
  , path = require('path')
  , app = express()
  , multer = require('multer')
  , mysql      = require('mysql')
  , bodyParser=require("body-parser");
  
const DIR = './uploads';

var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'root',
  password : '',
  database : 'test'
});
 
connection.connect();
 
global.db = connection;
 
let storage = multer.diskStorage({
    destination: function (req, file, callback) {
      callback(null, DIR);
    },
    filename: function (req, file, cb) {
      cb(null, file.fieldname + '-' + Date.now() + path.extname(file.originalname));
    }
});

let upload = multer({storage: storage});

// all environments
const PORT = process.env.PORT || 8010;
app.set('port', process.env.PORT || 8080);
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(express.static(path.join(__dirname, 'public')));
 app.listen(PORT, function () {
  console.log('Node.js server is running on port ' + PORT);
});
//Middleware
app.listen(8080)

Kami telah menyertakan semua informasi paket dan membuat objek. Objek konfigurasi MySQL memerlukan nama host MySQL, nama pengguna, sandi, dan nama database

Kami telah menentukan folder tujuan file upload adalah 'uploads/'. File ejs akan disimpan ke dalam folder

{
  "name": "nodejs-upload-image-mysql-multer",
  "version": "1.0.0",
  "description": "",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": {
    "name": "Adam",
    "email": "[email protected]",
    "url": "https://www.js-tutorials.com/"
  },
  "license": "MIT",
  "dependencies": {
    "body-parser": "^1.16.1",
    "ejs": "^2.5.6",
    "express": "^4.14.1",
    "multer": "^1.3.1",
    "mysql": "^2.13.0"
  },
  "devDependencies": {
    "nodemon": "^1.18.4"
  }
}
7

Kami membuat nama file baru menggunakan nama file yang diunggah dan stempel waktu saat ini

Sekarang jalankan

{
  "name": "nodejs-upload-image-mysql-multer",
  "version": "1.0.0",
  "description": "",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": {
    "name": "Adam",
    "email": "[email protected]",
    "url": "https://www.js-tutorials.com/"
  },
  "license": "MIT",
  "dependencies": {
    "body-parser": "^1.16.1",
    "ejs": "^2.5.6",
    "express": "^4.14.1",
    "multer": "^1.3.1",
    "mysql": "^2.13.0"
  },
  "devDependencies": {
    "nodemon": "^1.18.4"
  }
}
_8, Anda akan mendapatkan server aplikasi berjalan di
{
  "name": "nodejs-upload-image-mysql-multer",
  "version": "1.0.0",
  "description": "",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": {
    "name": "Adam",
    "email": "[email protected]",
    "url": "https://www.js-tutorials.com/"
  },
  "license": "MIT",
  "dependencies": {
    "body-parser": "^1.16.1",
    "ejs": "^2.5.6",
    "express": "^4.14.1",
    "multer": "^1.3.1",
    "mysql": "^2.13.0"
  },
  "devDependencies": {
    "nodemon": "^1.18.4"
  }
}
9

Render tampilan template ejs Menggunakan Router

Mari buat rute indeks, yang akan menampilkan tampilan pengunggahan file saat memuat aplikasi

<div id="mainform" class="container col-sm-12">
<div id="signupbox" class="mainbox col-md-6 col-md-offset-3 col-sm-8 col-sm-offset-2" style="margin-top: 50px;">
<div class="panel panel-info">
<div class="panel-heading">
<div class="panel-title">Upload Image</div>
</div>
<div class="panel-body"><form class="form-horizontal" role="form" action="/api/v1/upload" enctype="multipart/form-data" method="post">&lt;% if (message.length &gt; 0) { %&gt;
<div class="alert alert-<%= status %> col-sm-12">&lt;%= message %&gt;</div>
&lt;% } %&gt;
<div class="form-group"><label class="col-md-3 control-label" for="image">Profile Image</label>
<div class="col-sm-9"><input class="form-control" accept="" name="profile" type="file"></div>
</div>
<div class="form-group"><!-- Button -->
<div class="col-md-offset-3 col-md-9"><button id="btn-signup" class="btn btn-info" type="submit"><i class="icon-hand-right"></i> &nbsp; Upload</button></div>
</div>
</form></div>
</div>
</div>
</div>
0

Iklan
message =''
app.get('/', function(req, res) {
    res.render('index', message);
});

API Unggah File Tunggal

Mari buat API untuk mengunggah satu file ke dalam file app.js, API file unggahan akan menjadi tipe POST

app.post('/api/v1/upload',upload.single('profile'), function (req, res) {
  message : "Error! in image upload."
    if (!req.file) {
        console.log("No file received");
          message = "Error! in image upload."
        res.render('index',{message: message, status:'danger'});
    
      } else {
        console.log('file received');
        console.log(req);
        var sql = "INSERT INTO `file`(`name`, `type`, `size`) VALUES ('" + req.file.filename + "', '"+req.file.mimetype+"', '"+req.file.size+"')";

                var query = db.query(sql, function(err, result) {
                   console.log('inserted data');
                });
        message = "Successfully! uploaded";
        res.render('index',{message: message, status:'success'});

      }
});

Saat mengupload file, Kami menyimpan informasi file yang diupload ke dalam database dan mengirimkan pesan sukses, jika file kosong atau tidak diupload, maka Anda akan mendapatkan pesan error

Bagaimana cara mengunggah PDF dalam basis data menggunakan node js?

Simpul. js Unggah File .
Langkah 1. Buat Formulir Unggah. Buat Node. js yang menulis formulir HTML, dengan bidang unggahan. .
Langkah 2. Parse File yang Diunggah. Sertakan modul Tangguh untuk dapat mengurai file yang diunggah setelah mencapai server. .
Langkah 3. Simpan File

Bagaimana cara menyimpan file PDF di database MySQL?

MySQL memiliki tipe data BLOB yang dapat digunakan untuk menyimpan file seperti. pdf,. jpg,. .
'Indo'. ketik INTEGER
'Nama Proyek'. ketik TEKS
'pdf_doc'. ketik BLOB

Bagaimana cara menyimpan file di database MySQL menggunakan Node js?

Unggah/simpan gambar di MySQL menggunakan Node. .
Node. js unggah/simpan gambar di ikhtisar MySQL
Setel Node. modul js
Konfigurasi database MySQL & Sequelize
Inisialisasi Sekuel
Tentukan Model Sekuelisasi
Buat middleware untuk mengunggah dan menyimpan gambar
Buat Pengontrol untuk mengunggah Gambar

Bisakah Anda menyimpan PDF dalam database SQL?

Alih-alih tabel jenis ini disebut tabel file. Menggunakan tabel file, dokumen atau PDF apa pun atau dalam hal ini file apa pun dapat disimpan di SQL Server .