Node.js nodejs无法检测空文件上载
我是nodejs的新手,我正在学习如何上传文件。我正在使用一个叫做“强大”的中间件,这很可怕,但我想知道如何跳过空附件上传。下面的脚本还可以,但它会继续创建不应该出现的空文件。感谢您的帮助或建议Node.js nodejs无法检测空文件上载,node.js,Node.js,我是nodejs的新手,我正在学习如何上传文件。我正在使用一个叫做“强大”的中间件,这很可怕,但我想知道如何跳过空附件上传。下面的脚本还可以,但它会继续创建不应该出现的空文件。感谢您的帮助或建议 var http = require('http'); var user = require('./user'); var fs = require('fs'); var path = require('path'); var url = require('url'); var querystring
var http = require('http');
var user = require('./user');
var fs = require('fs');
var path = require('path');
var url = require('url');
var querystring = require('querystring');
var util = require('util');
var filePath = path.join(__dirname + '/test.html');
var file = fs.readFileSync(filePath, {encoding: 'utf-8'})
var maxData = 2 * 1024 * 1024; //2mb
var connect = require('connect');
var formidable = require('formidable');
http.createServer(function(request, response) {
if(request.method == 'POST')
{
response.writeHead('Content : text/html');
var incoming = new formidable.IncomingForm();
incoming.uploadDir = 'upload';
incoming.on('fileBegin', function(field, file){
console.log(file.name);
if (file.name && file.name != ''){
file.path += "-" + file.name;
file.name = '';
console.log(file.name);
}
}).on('file', function(filed, file){
console.log('uploading...');
response.write(file.name + ' gotted');
}).on('end', function(){
response.end('Eveyrhitng in folder');
})
incoming.parse(request);
}
if(request.method == 'GET')
{
response.writeHead('Content : text/html');
response.write(file);
response.end('This is the end of it');
}
}).listen(8080);
这是我的表格
<html>
<body>
<form action="" method="post" enctype="multipart/form-data">
<!-- <input type="text" name="test">
<input type="text" name="test2"> -->
<input type="file" name="file">
<input type="file" name="file2">
<input type="submit">
</form>
</body>
</html>
查看file.size
属性,如果它是0
,则文件字段为空。您认为什么是空的?一个0字节的文件?0字节,所以如果我选择name=“file”和一个文件,而不选择另一个文件,并提交表单。这没关系,但为什么它在客户端没有选择文件时创建一个空文件,有没有办法停止?我也面临这个问题,并寻找解决方案。如果有3个输入文件,而您只选择了一个,则在/tmp目录中创建了3个文件