图片的上传&第九周总结

一、node.js图片的上传

图片上传

1.前端角度
a.将图片发给后端 ajax
1.前端获取图片信息 文件域
2.将文件信息 存到formdata
3.调用后端写的api接口发送数据
b.接受返回的数据
前端页面显示图片

上传图片储存位置

 <form action="/up" method="post" enctype="multipart/form-data">
            <input type="file" class="files" id="files" name="files">
            <input type="submit" id="uploadFile" value="文件上传">
</form>



// 导入必备的模块,全局设置一些公共变量
var fs = require('fs');
var formidable = require('formidable');

var img = '/images/';
router.post('/up', function(req, res) {

  //创建上传表单
  var form = new formidable.IncomingForm();

  //设置编辑
  form.encoding = 'utf-8';

  //设置上传目录
  form.uploadDir = '张少龙/public' + img;

  //保留后缀
  form.keepExtensions = true;

  //文件大小 2M
  form.maxFieldsSize = 2 * 1024 * 1024;

  // 上传文件的入口文件
  form.parse(req, function(err, fields, files) {

    if (err) {
      res.locals.error = err;
      res.render('user',{title:"信息中心",email:req.cookies.email})
      return;
    }
    
    for (var key in files) {
      var file = files[key];
      //产生随机数
      var fName = (new Date()).getTime();
      //判断图片类型
      switch (file.type) {
        case "image/jpeg":
          fName = fName + ".jpg";
          break;
        case "image/png":
          fName = fName + ".png";
          break;
        default:
          fName = fName + ".png";
          break;
      }
    }
   
    console.log(fName);
    if(fName== " ") {
      res.locals.error = '只支持png和jpg格式图片';
      res.render('user',{title:"个人中心",email:req.cookies.email})
    }


    console.log(fName);
    var newPath = form.uploadDir + fName;
    console.log(newPath);
    
    fs.renameSync(file.path, newPath);  //重命名fs.renameSync(oldPath, newPath)
    res.render('user',{title:"信息中心",email:req.cookies.email})
  });
  res.locals.success = '上传成功';
  console.log(res.locals.success);
  })

总结:

   美好而又短暂的一周又过去了。现在已经是这学期开学的第九周了,算起来已经过去一半了。这着过去的第九周里,由于上星期项目考核没有做好,这星期在全身心地写项目,改bug.只要有时间就在改项目,似乎找到了一点刚开始进入小组的状态,发了疯的努力,即使有很多时候都在做无用功,但还是不敢止步不前。有几次真的感觉挺崩溃的。付出跟回报是等价的,继续努力吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值