nodejs에 업로드 된 이미지 URL 가져 오기
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를 uploads라는 로컬 폴더에 업로드하는 것 같습니다.
다음 자습서를 권장합니다. firebase에 img 업로드
이 가이드에서는 multer를 사용하여 클라우드 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
아직 설정하지 않은 경우를 통해 가져 오려고 할 때 이미지 리소스에 대한 GET 경로를 설정해야합니다 http://localhost:3000/1599134489853.jpeg. Express 앱의 경우 파일을 반환하는 현재 단순 / 선호 방법은 res.sendFile 입니다. 그렇지 않으면 여기에 설명 된대로 스트림을 생성하고 반환 할 수 있습니다 .