javascript oss put base64 出现图片格式损坏 -问答-阿里云开发者社区-阿里云

开发者社区> 呆呆大笨熊> 正文

javascript oss put base64 出现图片格式损坏

2017-11-29 17:56:25 3794 2

···javascript
function (base64) {

      self.editor.focus()
      console.log(base64)

      let base = window.atob(base64.replace(/^.*?,/, ''))
      console.log(base)

      getOssSts().then(response => {
        let client = new OSS.Wrapper({
          accessKeyId: response.data.AccessKeyId,
          accessKeySecret: response.data.AccessKeySecret,
          stsToken: response.data.SecurityToken,
          endpoint: process.env.ENDPOINT,
          bucket: process.env.BUCKET
        })
        client.put(self.objectKey, new Buffer(base)).then(function (result) {
          self.onUploadSuccess(result.res)
          console.log(result)
        }).catch(function (err) {
          console.log(err)
        })
        console.log(response)
      })
    })
取消 提交回答
全部回答(2)
  • 呆呆大笨熊
    2019-07-17 21:46:05
    已采纳

    https://yq.aliyun.com/articles/253170?spm=5176.100240.searchblog.9.8tMWIb 参考这篇文章

    // Convert a base-64 string to a byte array

      base64ToBytes (base64) {
        // Use browser-native function if it exists
        if (typeof atob === 'function') return this.stringToBytes(window.atob(base64))
        // Remove non-base-64 characters
        base64 = base64.replace(/[^A-Z0-9+/]/ig, '')
        var bytes = []
        for (var i = 0; i < base64.length; i++) {
          switch (i % 4) {
            case 1:
              bytes.push((base64map.indexOf(base64.charAt(i - 1)) << 2) |
                (base64map.indexOf(base64.charAt(i)) >>> 4))
              break
            case 2:
              bytes.push(((base64map.indexOf(base64.charAt(i - 1)) & 0xF) << 4) |
                (base64map.indexOf(base64.charAt(i)) >>> 2))
              break
            case 3:
              bytes.push(((base64map.indexOf(base64.charAt(i - 1)) & 0x3) << 6) |
                (base64map.indexOf(base64.charAt(i))))
              break
          }
        }
        return bytes
      },
      stringToBytes (str) {
        var bytes = []
        for (var i = 0; i < str.length; i++) {
          bytes.push(str.charCodeAt(i))
        }
        return bytes
      }
    

    一定要转成base64ToBytes

    0 0
  • 游客3ag252bcsj33a
    2019-07-17 21:46:06

    老哥 base64map 是什么啊??? 同样的问题,急急急急

    0 0
添加回答
相关问答

145

回答

【新手入门】云服务器linux使用手册

fanyue88888 2012-11-26 17:14:18 157052浏览量 回答数 145

28

回答

钉钉开放平台“常见问题常见问题常见问题“重要请关注

竹梅 2015-12-03 00:39:14 92840浏览量 回答数 28

110

回答

OSS存储服务-客户端工具

newegg11 2012-05-17 15:37:18 292247浏览量 回答数 110

22

回答

爬虫数据管理【问答合集】

我是管理员 2018-08-10 16:37:41 146755浏览量 回答数 22

31

回答

[@倚贤][¥20]刚学完html/css/js的新手学习servlet、jsp需要注意哪些问题?

弗洛伊德6 2018-10-27 21:52:43 145590浏览量 回答数 31

82

回答

OSS入门教程

belle.zhoux 2014-07-07 17:14:27 149313浏览量 回答数 82

88

回答

手把手教你搭建自己的OSS FTP 服务器

lei.zhuol 2012-05-16 14:48:33 89495浏览量 回答数 88

249

回答

阿里云LNAMP(Linux + Nginx + Apache + MySQL + PHP)环境一键安装脚本

云代维 2014-02-14 15:26:06 302570浏览量 回答数 249

24

回答

【精品问答】python技术1000问(1)

问问小秘 2019-11-15 13:25:00 471298浏览量 回答数 24

2

回答

区域选择帮助

fanyue88888 2012-12-07 15:54:30 203988浏览量 回答数 2
0
文章
2
问答
推荐问答
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载