รับ URL รูปภาพที่อัปโหลดใน nodejs
ฉันใช้ nodejs multer เพื่ออัปโหลดไฟล์รูปภาพไปยังไดเร็กทอรีอัพโหลดรูปภาพ หลังจากอัปโหลดภาพนี้จะแสดงในแท็ก html img ในเบราว์เซอร์ไคลเอนต์ได้อย่างไร url คืออะไร?
เมื่อฉันพิมพ์ http: // localhost: 3000 / uploads / 1591342432.jpeg มันขึ้นว่าไม่สามารถรับไฟล์ได้
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);
}
});
คำตอบ
ดูเหมือนว่าคุณกำลังใช้ Multer เพื่ออัปโหลด img ไปยังโฟลเดอร์ในเครื่องที่เรียกว่าอัปโหลด
ฉันจะแนะนำบทช่วยสอนต่อไปนี้: อัปโหลด img ไปยัง firebase
บทแนะนำนี้ใช้ Multer เพื่ออัปโหลด Cloud Firebase เมื่อคุณอัปโหลดภาพคุณจะได้รับลิงก์ไปยังภาพที่เก็บไว้บนคลาวด์และลิงก์เดียวกับที่คุณสามารถใช้บนเซิร์ฟเวอร์อื่นได้
ฉันคิดว่าฉันต้องตั้งค่าไดเร็กทอรีแบบคงที่:
app.use(express.static("uploads"));
จากนั้นฉันสามารถเข้าถึงไฟล์ภาพได้ดังนี้:
http://localhost:3000/1599134489853.jpeg
http://localhost:3000/1599134489853.jpegหากคุณไม่ได้แล้วคุณจะต้องไปยังเส้นทางที่ได้รับชุดสำหรับทรัพยากรภาพเมื่อพยายามที่จะดึงข้อมูลผ่านทาง สำหรับแอปด่วนก็จะปรากฏขึ้นในปัจจุบันวิธีการที่เรียบง่าย / แนะนำสำหรับการกลับมาของไฟล์นั้นres.sendFile มิฉะนั้นคุณสามารถสร้างกระแสและผลตอบแทนที่แสดงให้เห็นที่นี่