在将图像作为encode64时删除encode64标头数据。

问题描述 投票:0回答:3

我有任务在encode64中转换上传的图像,然后将其发送到API我已成功使用它的所有部分,但我必须从encode64数据中删除标头。 data:image/png;base64,

<!DOCTYPE html>
<html>
<head>
<metea charset="utf8">
<title></title>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-alpha1/jquery.js"></script>
<script type="text/javascript">
    function readURL(input) {
        if (input.files && input.files[0]) {
            var reader = new FileReader();
            reader.onload = function (e) {
                $('#falseinput').attr('src', e.target.result);
                $('#base').val(e.target.result);
            };
            reader.readAsDataURL(input.files[0]);
        }
    }
</script>
</head>
<body>
<h1>File Upload</h1>
<input id="fileinput" type="file" accept="image/gif, image/jpeg, image/png" onchange="readURL(this);" /> <br><br>
<textarea id="base"></textarea>
</body>
</html>
jquery
3个回答
0
投票

您可以使用正则表达式获取“base64”之后的所有文本,然后将其用作您的数据:

/base64,(.+)/.exec(e.target.result)[1]

见下面的例子:

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf8">
    <title></title>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-alpha1/jquery.js"></script>
    <script type="text/javascript">
      function readURL(input) {
        if (input.files && input.files[0]) {
          var reader = new FileReader();
          reader.onload = function(e) {
            $('#falseinput').attr('src', e.target.result);
            $('#base').val(/base64,(.+)/.exec(e.target.result)[1]);
          };
          reader.readAsDataURL(input.files[0]);
        }
      }
    </script>
</head>

<body>
  <h1>File Upload</h1>
  <input id="fileinput" type="file" accept="image/gif, image/jpeg, image/png" onchange="readURL(this);" /> <br><br>
  <textarea id="base"></textarea>
</body>

</html>

0
投票

您可以使用替换功能并将其删除

function readURL(input) {
        if (input.files && input.files[0]) {
            var reader = new FileReader();
            reader.onload = function (e) {
                $('#falseinput').attr('src', e.target.result);

                var base64Image = e.target.result;
                base64Image = base64Image.replace('data:image/png;base64,', '')
                                            .replace('data:image/jpeg;base64,', '')
                                            .replace('data:image/gif;base64,', '');

                $('#base').val(base64Image);
            };
            reader.readAsDataURL(input.files[0]);
        }
    }

0
投票

请在存储在textarea var data=e.target.result; $('#base').val(data.replace("data:image/jpeg;base64,", ""));之前将其放入脚本中

完整的脚本是

 function readURL(input) {
        if (input.files && input.files[0]) {
            var reader = new FileReader();
            reader.onload = function (e) {
                $('#falseinput').attr('src', e.target.result);
                var data=e.target.result;
                $('#base').val(data.replace("data:image/jpeg;base64,", ""));
            };
            reader.readAsDataURL(input.files[0]);
        }
    }
© www.soinside.com 2019 - 2024. All rights reserved.