Node.js 如何删除不完整的上传文件?
我正在创建一个节点服务器,使用“express”、“fs”和“busboy”模块上载文件。服务器按预期工作,但当我在完成之前取消上载时,不完整的文件存储在文件系统中。如何删除不完整的文件Node.js 如何删除不完整的上传文件?,node.js,busboy,Node.js,Busboy,我正在创建一个节点服务器,使用“express”、“fs”和“busboy”模块上载文件。服务器按预期工作,但当我在完成之前取消上载时,不完整的文件存储在文件系统中。如何删除不完整的文件 var express = require("express"), fs = require("fs"), Busboy = require("busboy"); app = express(); app.listen(7000); app.get("/", display_form); app.post("/
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);
});
我不知道巴士司机,但你开了一条小溪,却从不关上它。 为什么不利用流和文件名来“完成”和“错误”,并相应地采取行动 例如:
busboy.on('error', function() {
fs.unlink('./uploads/' + filename);
console.log('error busboy');
}
我不知道巴士司机,但你开了一条小溪,却从不关上它。 为什么不利用流和文件名来“完成”和“错误”,并相应地采取行动 例如:
busboy.on('error', function() {
fs.unlink('./uploads/' + filename);
console.log('error busboy');
}
我不知道巴士司机,但你开了一条小溪,却从不关上它。 为什么不利用流和文件名来“完成”和“错误”,并相应地采取行动 例如:
busboy.on('error', function() {
fs.unlink('./uploads/' + filename);
console.log('error busboy');
}
我不知道巴士司机,但你开了一条小溪,却从不关上它。 为什么不利用流和文件名来“完成”和“错误”,并相应地采取行动 例如:
busboy.on('error', function() {
fs.unlink('./uploads/' + filename);
console.log('error busboy');
}
谢谢你的帮助,我终于找到了解决这个问题的方法。我添加了下面提到的代码片段,它工作正常
req.on("close", function(err) {
fstream.end();
fs.unlink('./uploads/' + name);
console.log("req aborted by client");
});
谢谢你的帮助,我终于找到了解决这个问题的方法。我添加了下面提到的代码片段,它工作正常
req.on("close", function(err) {
fstream.end();
fs.unlink('./uploads/' + name);
console.log("req aborted by client");
});
谢谢你的帮助,我终于找到了解决这个问题的方法。我添加了下面提到的代码片段,它工作正常
req.on("close", function(err) {
fstream.end();
fs.unlink('./uploads/' + name);
console.log("req aborted by client");
});
谢谢你的帮助,我终于找到了解决这个问题的方法。我添加了下面提到的代码片段,它工作正常
req.on("close", function(err) {
fstream.end();
fs.unlink('./uploads/' + name);
console.log("req aborted by client");
});
很抱歉,如果上传完成,那么只有我可以获得控制权。在这种情况下,控件将不会进入任何错误处理块。如果服务器端无法确定连接是否失败或是否被用户取消,则无法确定上载是否完成。标题中是否有任何内容告诉您应该接收多少字节?因此,在('close')上,您可以进行检查。(请注意,计数在很大程度上取决于编码。)抱歉,但如果上载完成,则只有我可以获得控制权。在这种情况下,控件将不会进入任何错误处理块。如果服务器端无法确定连接是否失败或是否被用户取消,则无法确定上载是否完成。标题中是否有任何内容告诉您应该接收多少字节?因此,在('close')上,您可以进行检查。(请注意,计数在很大程度上取决于编码。)抱歉,但如果上载完成,则只有我可以获得控制权。在这种情况下,控件将不会进入任何错误处理块。如果服务器端无法确定连接是否失败或是否被用户取消,则无法确定上载是否完成。标题中是否有任何内容告诉您应该接收多少字节?因此,在('close')上,您可以进行检查。(请注意,计数在很大程度上取决于编码。)抱歉,但如果上载完成,则只有我可以获得控制权。在这种情况下,控件将不会进入任何错误处理块。如果服务器端无法确定连接是否失败或是否被用户取消,则无法确定上载是否完成。标题中是否有任何内容告诉您应该接收多少字节?因此,在('close')上,您可以进行检查。(请注意,计数在很大程度上取决于编码。)