nodejs 上传文件的一些问题

图片地址,但不展示正确的图片

加载其他文件读取时不能加  ‘utf8’

  		fs.readFile('.'+url,function(err,data){
		       //相应资源数据
		       if(!err){
                    console.log(url);
		       	   res.end(data);
		       	}else{
		       		res.end('');
		       	}
		  });

rename无法移动文件,可能是不在同一个磁盘

可以用 copyFile

 var fd=require('formidable');
        var form=new fd.IncomingForm();
        //form.uploadDir = "./tmp";
        form.parse(req,function(err,filds,files){
              //console.log(filds);
           if(files.img){
              //console.log(files);
              var oldPath=files.img[0].filepath;
              //console.log( oldPath);


                var filepathname='img/'+files.img[0].originalFilename;
                 fs.copyFile(oldPath, './'+filepathname, (err) => {
                    if (err) {
                        console.log(err);
                    }else{
                             fs.readFile('./db.json','utf8',function(err,data){
                                 var json_arr=JSON.parse(data);
                                for(v in json_arr){
                                    if(json_arr[v].id==id){
                                        json_arr[v].name=filds.name[0];
                                        json_arr[v].nengli=filds.nengli[0];
                                        json_arr[v].jituan=filds.jituan[0];
                                        json_arr[v].img=filepathname;
                                    }
                                }
                                console.log(json_arr);
                               var strojson=JSON.stringify(json_arr);
                                fs.writeFile('./db.json',strojson,'utf8',(err)=>{
                                res.setHeader('Content-type', 'text/html;charset=utf-8');
                                      if(err==null){
                                         console.log('修改成功');
                                         //location.href="/";
                                         res.end("<script>alert('修改成功');location.href='/';</script>");
                                      }else{
                                         res.end("<script>alert('修改失败');</script>");
                                      }
                                });
                         });
                    }
                });
                 /*
 


                */

            }else{
                fs.readFile('./db.json','utf8',function(err,data){
                                 var json_arr=JSON.parse(data);
                                for(v in json_arr){
                                    if(json_arr[v].id==id){
                                        json_arr[v].name=filds.name[0];
                                        json_arr[v].nengli=filds.nengli[0];
                                        json_arr[v].jituan=filds.jituan[0];
                                    }
                                }
                                console.log(json_arr);
                               var strojson=JSON.stringify(json_arr);
                                fs.writeFile('./db.json',strojson,'utf8',(err)=>{
                                res.setHeader('Content-type', 'text/html;charset=utf-8');
                                      if(err==null){
                                         console.log('修改成功');
                                         //location.href="/";
                                         res.end("<script>alert('修改成功');location.href='/';</script>");
                                      }else{
                                         res.end("<script>alert('修改失败');</script>");
                                      }
                                });
                });

            }
        });

也可以改变存储的临时目录

var fd=require('formidable');
        var form=new fd.IncomingForm();
        form.uploadDir = "./tmp";
        form.parse(req,function(err,filds,files){
              //console.log(filds);
            console.log(files);
           if(files.img){

              var oldPath=files.img[0].filepath;
              //console.log( oldPath);
                var imghou=files.img[0].originalFilename.split('.');
                var index=imghou.length-1;
                var houzhui=imghou[imghou.length-1];
                // console.log(houzhui);
                var timestemp=Date.now();
                var shuijishu=Math.floor(Math.random() * 10000) + 1;
                var filepathname='img/'+timestemp+shuijishu+'.'+houzhui;
                 fs.rename(oldPath, './'+filepathname, (err) => {
                    if (err) {
                        console.log(err);
                    }else{
                             fs.readFile('./db.json','utf8',function(err,data){
                                 var json_arr=JSON.parse(data);
                                for(v in json_arr){
                                    if(json_arr[v].id==id){
                                        json_arr[v].name=filds.name[0];
                                        json_arr[v].nengli=filds.nengli[0];
                                        json_arr[v].jituan=filds.jituan[0];
                                        json_arr[v].img=filepathname;
                                    }
                                }
                                //console.log(json_arr);
                               var strojson=JSON.stringify(json_arr);
                                fs.writeFile('./db.json',strojson,'utf8',(err)=>{
                                res.setHeader('Content-type', 'text/html;charset=utf-8');
                                      if(err==null){
                                         console.log('修改成功');
                                         //location.href="/";
                                         res.end("<script>alert('修改成功');location.href='/';</script>");
                                      }else{
                                         res.end("<script>alert('修改失败');</script>");
                                      }
                                });
                         });
                    }
                });
              
 


                

            }else{
                fs.readFile('./db.json','utf8',function(err,data){
                                 var json_arr=JSON.parse(data);
                                for(v in json_arr){
                                    if(json_arr[v].id==id){
                                        json_arr[v].name=filds.name[0];
                                        json_arr[v].nengli=filds.nengli[0];
                                        json_arr[v].jituan=filds.jituan[0];
                                    }
                                }
                                console.log(json_arr);
                               var strojson=JSON.stringify(json_arr);
                                fs.writeFile('./db.json',strojson,'utf8',(err)=>{
                                res.setHeader('Content-type', 'text/html;charset=utf-8');
                                      if(err==null){
                                         console.log('修改成功');
                                         //location.href="/";
                                         res.end("<script>alert('修改成功');location.href='/';</script>");
                                      }else{
                                         res.end("<script>alert('修改失败');</script>");
                                      }
                                });
                });

            }
        });

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值