Node JS:文件上传错误[ERR_STREAM_WRITE_AFTER_END]

问题描述 投票:0回答:1

因此,我想做的是,我只是使用以下参考,在Formidable Module的帮助下,使用nodeJS将文件上传到特定文件夹。File Upload using nodeJS

现在,我的文件被上传到所需的文件夹,但是当我从CLI运行命令时,它给我一个错误

这里是我尝试过的代码

var http = require('http') ;
var formidable = require('formidable') ;
var fs = require('fs');


http.createServer(function(req, res){
if(req.url == '/fileUpload'){
    var form = new formidable.IncomingForm();
    form.parse(req, function(err,fields,files){
        var oldpath = files.filetoupload.path;
        var newpath = 'C://xampp/htdocs/nodejs/upload/' + files.filetoupload.name;
        fs.rename(oldpath, newpath, function (err){
            if(err) throw err;
            res.write('File Uploaded and Moved !!');
            res.end();
        });
        res.write('File Uploaded');
        res.end();
    });
}
else{
    res.writeHead(200, {'Content-Type': 'text/html'}) ;
    res.write('<form action="fileUpload" method = "post" enctype="multipart/form-data">');
    res.write('<input type = "file" name="filetoupload" /><br/>') ;
    res.write('<input type="submit" />') ;
    res.write('</form>') ;
    return res.end() ;
    }
}).listen(8080) ;

我得到的[[错误是:

> Error [ERR_STREAM_WRITE_AFTER_END]: write after end > at write_ (_http_outgoing.js:572:17) > at ServerResponse.write (_http_outgoing.js:567:10) > at C:\xampp\htdocs\nodejs\upload.js:14:8 > at FSReqWrap.args [as oncomplete] (fs.js:140:20) Emitted 'error' event at: > at writeAfterEndNT (_http_outgoing.js:634:7) > at process._tickCallback (internal/process/next_tick.js:63:19)
javascript node.js file file-upload formidable
1个回答
0
投票
您关闭流后正在尝试写。

var form = new formidable.IncomingForm(); form.parse(req, function(err,fields,files){ var oldpath = files.filetoupload.path; var newpath = 'C://xampp/htdocs/nodejs/upload/' + files.filetoupload.name; fs.rename(oldpath, newpath, function (err){ if(err) throw err; res.write('File Uploaded and Moved !!'); res.end(); // here, remove this end call }); res.write('File Uploaded'); res.end(); });

© www.soinside.com 2019 - 2024. All rights reserved.