场景:我的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();
}
);
}
有不有 遇到 这个 问题的,指导一下·····
2 回复
我遇到过这个问题,解决方案是加上这句:
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();
}
);
}