Mendapatkan url gambar yang diunggah di nodejs
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
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
Saya rasa saya perlu mengatur direktori statis:
app.use(express.static("uploads"));
Kemudian saya dapat mengakses file gambar sebagai:
http://localhost:3000/1599134489853.jpeg
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 .