上传到nodejs时损坏的文件/图像
Corrupt files/images when uploaded to nodejs
我已经在谷歌上搜索了所有的互联网,但我还没有找到我的问题。我使用multipart上传到nodejs,但我所有的文件都被破坏了,我使用了许多解析解决方案,我可以用强大的功能来完成,但我想学习如何自己解析。输出文件的二进制代码与原始的[size和binary(我使用了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
。
相关文章:
- 如何使用谷歌应用程序脚本从电子邮件中提取内联文件/图像
- 当我在操作属性中写入页面名称时,文件图像不会上传
- 将已编辑的文件(图像)数组发送到php脚本
- 预览上传的文件(图像)
- 使用 src 在 PHP 中链接文件(图像,js)
- 通过javascript处理默认配置文件图像的更好方法
- 使我的想法成为可能,为画布输入文件图像命名
- 跨原点图像加载(twitter配置文件图像)
- 输入文件(图像)显示空数组,如果数组中有数据的话
- 如何通过tastypie上传文件/图像
- 上传到nodejs时损坏的文件/图像
- 获取上载的文件/图像的名称
- Django:除主页模板外,静态文件图像URL路径中断
- Parsley验证文件图像没有'不起作用
- 如何在单击'时设置文件/图像的名称;将图像另存为'
- 上载要分析的配置文件图像
- 将数据库mysql中的文件图像插入excel
- 如何使用twitter api(js)获取用户配置文件图像
- 在javascript中从本地驱动器读取文件/图像
- 使用ajax上传文件图像时页面冻结