'express', 'fs'및 'busboy'모듈을 사용하여 파일을 업로드 할 노드 서버를 만들고 있습니다. 서버가 예상대로 작동하지만 완료 전에 업로드를 취소하면 불완전한 파일이 파일 시스템에 저장됩니다. 불완전한 파일은 어떻게 제거 할 수 있습니까?불완전한 업로드 파일을 제거하는 방법?
var express = require("express"),
fs = require("fs"),
Busboy = require("busboy");
app = express();
app.listen(7000);
app.get("/", display_form);
app.post("/upload", function(req, res) {
var busboy = new Busboy({
headers: req.headers
});
busboy.on("file", function(fieldname, file, filename, encoding, mime) {
var fstream = fs.createWriteStream("./uploads/" + filename);
file.pipe(fstream);
file.on("data", function(chunk) {
console.log(chunk.length);
});
file.on("end", function() {
console("end");
});
fstream.on("close", function() {
fstream.close();
console("fstream close");
});
fstream.on("error", function() {
console("fstream error ");
});
});
busboy.on("finish", function() {
console.log("uploaded");
res.send("file uploaded");
});
busboy.on("error", function() {
console("error busboy");
});
req.pipe(busboy);
});
죄송 합니다만 업로드가 완료되면 제어 권한 만 얻을 수 있습니다. 이 경우 컨트롤은 오류 처리 블록 중 아무 것도 수행하지 않습니다. –
서버 쪽에서 사용자가 연결을 실패했거나 취소했는지 확인할 수있는 방법이 없다면 업로드가 완료되었는지 확인할 수 없습니다. 헤더에 몇 바이트를 받아야하는지 알려주는 것이 있습니까? 그래서'on (close) '에 체크를 할 수 있습니다. (카운팅은 인코딩에 크게 의존합니다.) – CFrei