node.js - nodejs 是如何处理post来的图片 使其放入 /public/images 里的?

查看:682
本文介绍了node.js - nodejs 是如何处理post来的图片 使其放入 /public/images 里的?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

初学nodejs,用的 express。

移动端这边 是想用 okhttp 直接post图片文件上去的,nodejs有没有什么直接接收并存储的方法?

之前有尝试过Base64上传,再到nodejs解码,感觉一张不带文字的图片不应该这样,太繁琐。

解决方案

express

form 添加这个:enctype="multipart/form-data"

input(type="file")

引用

var multiparty = require('connect-multiparty')
var multipartMiddleware = multiparty();

路由
app.post('/movie/save',multipartMiddleware,Movie.savePoster,Movie.save)



exports.savePoster = function(req, res, next) {
  var posterData = req.files.uploadPoster
  var filePath = posterData.path
  var originalFilename = posterData.originalFilename

  if (originalFilename) {
    fs.readFile(filePath, function(err, data) {
      var timestamp = Date.now()
      var type = posterData.type.split('/')[1]
      var poster = timestamp + '.' + type
      **//将文件保存到特定的目录**
      var newPath = path.join(__dirname, '../../', '/file/images/' + poster)

      fs.writeFile(newPath, data, function(err) {
        // 自定义
        req.poster = poster
        next()
      })
    })
  }
  else {
    next()
  }
}

最后可以参考:http://www.imooc.com/learn/197中关于上传海报的章节视频,这个是过期的,后面一章有升级的方法

这篇关于node.js - nodejs 是如何处理post来的图片 使其放入 /public/images 里的?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆