รับ URL รูปภาพที่อัปโหลดใน nodejs

Sep 03 2020

ฉันใช้ 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);
  }
});

คำตอบ

Hasham Sep 03 2020 at 19:25

ดูเหมือนว่าคุณกำลังใช้ Multer เพื่ออัปโหลด img ไปยังโฟลเดอร์ในเครื่องที่เรียกว่าอัปโหลด

ฉันจะแนะนำบทช่วยสอนต่อไปนี้: อัปโหลด img ไปยัง firebase

บทแนะนำนี้ใช้ Multer เพื่ออัปโหลด Cloud Firebase เมื่อคุณอัปโหลดภาพคุณจะได้รับลิงก์ไปยังภาพที่เก็บไว้บนคลาวด์และลิงก์เดียวกับที่คุณสามารถใช้บนเซิร์ฟเวอร์อื่นได้

DarylWong Sep 03 2020 at 19:34

ฉันคิดว่าฉันต้องตั้งค่าไดเร็กทอรีแบบคงที่:

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

จากนั้นฉันสามารถเข้าถึงไฟล์ภาพได้ดังนี้:

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

http://localhost:3000/1599134489853.jpegหากคุณไม่ได้แล้วคุณจะต้องไปยังเส้นทางที่ได้รับชุดสำหรับทรัพยากรภาพเมื่อพยายามที่จะดึงข้อมูลผ่านทาง สำหรับแอปด่วนก็จะปรากฏขึ้นในปัจจุบันวิธีการที่เรียบง่าย / แนะนำสำหรับการกลับมาของไฟล์นั้นres.sendFile มิฉะนั้นคุณสามารถสร้างกระแสและผลตอบแทนที่แสดงให้เห็นที่นี่