NodeJS+axios上傳圖片

來源:互聯網
上載者:User

標籤:function   cti   form   headers   tip   send   ret   javascrip   方法   

前端js部分
changeEvent (e) {   ------  //change事件方法   let oFile = e.target.files[0]  ------  //擷取檔案對象   let param = new FormData()  ------  //new一個formData   param.append(‘file‘, oFile, oFile.name)   ------  //將檔案添加到formdata中   param.append(‘chunk‘, ‘0‘)    let config = {          headers: {‘Content-Type‘: ‘multipart/form-data‘}    }   this.axios.post(‘/api/upload/upavatar?username=‘ + username, param, config) ------//傳輸資料          .then(response => {            if (response.data.data === 1) {  ------ //成功後的回掉              let instance = Toast({                message: ‘頭像更改成功‘              })              setTimeout(() => {                instance.close()              }, 1000)            }          })}

  

NodeJS部分需要引入formidable、path模組
router.post(‘/upavatar‘, function (req, res, next) {  var form = new formidable.IncomingForm()  form.uploadDir = path.normalize(__dirname + ‘/../public/images/avatar‘) ------圖片上傳目錄  form.parse(req, function (err, fields, files) {    var oldpath = files.file.path    var newpath = path.normalize(__dirname + ‘/../public/images/avatar‘) + ‘\\‘ + req.query.username + ‘.png‘    -------//給上傳的圖片重新命名    fs.rename(oldpath, newpath, function (err) {      if (err) {        res.send(‘-1‘)        return      }      if (newpath) {        let avatarPath = ‘server/public/images/avatar/‘ + req.query.username + ‘.png‘  ------//存入資料庫的圖片地址(相對於頁面)        db.updateMany(‘users‘, {‘username‘: req.query.username}, {$set: {avatar: avatarPath}}, function (err, result) {  ------//更新資料庫的頭像地址          if (err) {            res.send(‘-2‘)            return          }          res.json({data: 1})        })      }    })  })})

  

NodeJS+axios上傳圖片

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.