gpt4 book ai didi

javascript - 上传到nodejs时损坏文件/图像

转载 作者:太空宇宙 更新时间:2023-11-04 02:31:19 26 4
gpt4 key购买 nike

我已经用谷歌搜索了所有互联网,但还没有找到我的问题。我正在使用multipart上传到nodejs,但是我的所有文件都已损坏,我使用了许多解析解决方案,并且我可以用强大的方法来完成,但我想学习如何自己解析。输出文件的二进制代码与原始文件完全相同[大小和二进制(我使用hexdump -C int 终端检查)]。

这是代码示例:

var http = require("http");
var fs = require("fs");

http.createServer(function(req, res){
if(!((req.url === "/upload") && (req.method === "POST"))){
home(res);
}else{
upload(req, res);
}
}).listen(8888);

function home(res){
res.end("<html><body><form action='/upload' method='post' enctype='multipart/form-data''><input name='file' type='file'/><input type='submit'></form></body></html>");
}

function upload(req, res){

var data = "";
req.setEncoding("binary");
req.addListener("data", function(chunk){
data = chunk.split("\r\n")[4];/*This was my last chance, but it also failed*/
});
req.addListener("end", function(){
res.end();
console.log(data);
fs.writeFile("icone.ico", data, "binary", function(err){/*I also used fs.createWriteStream*/
console.log("done");
});
});
}

最佳答案

您正在发送多部分请求。这意味着它不仅仅是您要上传的单个文件的原始内容,而是一种允许多个部分的特殊格式,其中每个部分都是一个单独的表单字段(在您的情况下只有一个部分 - 文件表单字段)。您应该考虑使用可以为您解析 multipart/form-data 请求的模块,例如 busboy , multiparty ,或formidable .

关于javascript - 上传到nodejs时损坏文件/图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26475844/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com