【问题标题】:How to convert an image file into its base64 representation without the leading prefix: "data:image/jpeg;base64" in js&html5如何将图像文件转换为不带前导前缀的 base64 表示:js&html5 中的“data:image/jpeg;base64”
【发布时间】:2019-03-21 21:40:10
【问题描述】:

我的前端有以下代码:

    let reader = new FileReader();
    reader.onload = function(e) {
        _this.imageBase64 = e.target.result;
        alert(_this.imageBase64);
        ...
    }

alert 函数显示imageBase64 是一个base64 字符串,它以data:image/jpeg;base64 开头。

问题是,有没有什么优雅的方法可以得到图片的base64字符串,没有这个前缀? (我不想用substringlike函数)。

由于服务器端代码将读取此字符串,并假设它仅包含图像的 base64 表示。

【问题讨论】:

  • 你为什么不想使用substring(或slice)?
  • 我是一个java coder,在java中我们将磁盘中的图像读入`inputstream`,然后将inputstream转换成base64字符串。根本没有无用的前缀。
  • 当然可以,但是为什么不使用substring 或slice 删除前缀呢?这是最直接的解决方案之一,因此我试图了解您为什么不想使用这些功能。
  • base64Str.split(',').pop() - 那么你不需要知道“标题”的长度
  • datauri.split('base64').pop() 如果您想明确指定标头的长度,可以是一种方法

标签: javascript html base64


【解决方案1】:

也许base64Str.split(',').pop() 是我的最佳选择,因为string.slice(start, stop) 和string.substring(start, stop) 需要准确的索引。

似乎我们通过使用我提到的方法获得了data url(具有领先的元数据前缀)。优点是该 url 可以直接在某些 src 字段中使用。这就是我们在前端世界中使用该前缀的原因。

【讨论】:

    猜你喜欢
    • 2015-07-29
    • 2015-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-02
    • 1970-01-01
    • 2015-12-09
    相关资源
    最近更新 更多