Mendapatkan url gambar yang diunggah di nodejs

Sep 03 2020

Saya menggunakan nodejs multer untuk mengupload file gambar ke direktori upload gambar. Setelah diunggah, bagaimana gambar ini dapat ditampilkan di tag img html di browser klien. Apa url nya?

Saat saya mengetik http: // localhost: 3000 / uploads / 1591342432.jpeg, dikatakan tidak bisa mendapatkan file.

var storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, "./uploads/");
  },
  filename: function (req, file, cb) {
    cb(null, Date.now() + ".jpeg");
  },
});

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

router.post("/upload", upload.single("file"), async (req, res) => {
  try {
    console.log("uploading...");
    console.log(req.file.filename);
    res.json({ cool: "yes" });
    // res.json({ file: req.file });
  } catch (error) {
    console.log(error);
  }
});

Jawaban

Hasham Sep 03 2020 at 19:25

Sepertinya Anda menggunakan multer untuk mengunggah img ke folder lokal bernama unggahan.

Saya akan merekomendasikan tutorial berikut: unggah img ke firebase

Tutorial ini menggunakan multer untuk mengupload cloud firebase. Setelah Anda mengunggah gambar, Anda akan mendapatkan tautan ke gambar yang disimpan di cloud dan tautan yang sama dapat Anda gunakan di server lain

DarylWong Sep 03 2020 at 19:34

Saya rasa saya perlu mengatur direktori statis:

app.use(express.static("uploads"));

Kemudian saya dapat mengakses file gambar sebagai:

http://localhost:3000/1599134489853.jpeg
GregBrodzik Sep 03 2020 at 19:31

Jika Anda belum melakukannya, Anda perlu menyetel jalur GET untuk sumber daya gambar saat mencoba mengambil lewat http://localhost:3000/1599134489853.jpeg. Untuk aplikasi ekspres, tampaknya metode sederhana / lebih disukai saat ini untuk mengembalikan file adalah res.sendFile . Jika tidak, Anda dapat menghasilkan aliran dan kembali seperti yang ditunjukkan di sini .