[Web KIT640] cross-device link not permitted 오류 시 해결방안

vinca·2023년 2월 8일
0

🍉 Web Frontend

목록 보기
14/22
post-thumbnail

다음과 같은 오류가 나오는 이유는 fs.rename 시 전송할 파일의 위치와, 저장할 파일의 각 드라이브의 위치가 서로 다르기 때문에 발생하는 오류이다.

fs.rename은 cross-device link를 말 그대로 허용하지 않는다.

해결방안

app.post("/input", (req, res)=>{
    var form = new formidable.IncomingForm();
    form.parse(req, function (err, fields, files) {
        var oldpath = files.photo_file.filepath;
        console.log(oldpath);
        var newpath = __dirname + "/images/" + files.photo_file.originalFilename;

        console.log(newpath);
        const rs = fs.createReadStream(oldpath);
	    const ws = fs.createWriteStream(newpath);
	    rs.pipe(ws);

   }); 
})

현재 js파일의 위치가 D드라이브에 존재하므로 __dirname을 사용했다.
다음과 같이 Strem을 통해서 파일을 복사하면 된다.

profile
붉은 배 오색 딱다구리 개발자 🦃Cloud & DevOps

0개의 댓글