nodejs初学者:实现简单文件上传,关于formidable 安装的问题
发布于 11 年前 作者 lynnliu 15469 次浏览 最后一次编辑是 8 年前

场景:我的nodejs安装在d:\nodejs下
formidable 版本是:1.0.14 在cmd中执行:npm install formidable

第一次安装formidable时,我是在 D:\nodejs目录下安装-------------项目启动,找不到 第二次安装formidable时,我是在D:\nodejs\node_modules\npm 目录下安装--------------项目启动,依然找不到。 第三次安装formidable时,我是在项目根目录下安装,找是找到了。但是文件上传时 报错了,

function upload(response,request) { console.log(“uoload 被调用!”); var form=new formidable.IncomingForm(); console.log(“about to parse”);

form.parse(request,function(error,fields,files){
	console.log("parsing done");

	fs.renameSync(files.upload.path,"/temp/text.png");
           //上面一行是 报错的代码 说fs 530行有问题

	response.writeHead(200,{"Content-Type":"text.html"});
	response.write("received image:<br/>");
	response.end();
}
);

}

有不有 遇到 这个 问题的,指导一下·····

3 回复

我遇到过这个问题,解决方案是加上这句:

form.uploadDir="./StaticResource/tmp";//必须设置

之后fs.renameSync(files.upload.path,"/temp/text.png");这第二个参数要文件名称要在你上面设置的目录下面,像我这样的:

fs.renameSync(files.upload.path,"./StaticResource/tmp/"+fields.username+".jpg");

试试吧。

可以了,感谢,我在form.parse(),之前,添加了如下: function upload(response,request) { console.log(“uoload 被调用!”); var form=new formidable.IncomingForm(); console.log(“about to parse”);

form.uploadDir="./temp";//必须设置

form.parse(request,function(error,fields,files){
	console.log("parsing done");
	
	fs.renameSync(files.upload.path,"./TEMP/"+fields.username+".png");
	
	response.writeHead(200,{"Content-Type":"text.html"});
	response.write("received image:<br/>");
	//response.write("<img src='./TEMP/undefined.png'/>");
	
	response.end();
}
);

}

回到顶部