在[img] base64 [/ img]标记中插入readAsDataURL

时间:2018-12-05 00:11:15

标签: javascript bbcode

我的代码,我有Jquery:

<div class="form-row">          
<input class="form-group col-md-6" id="fileinput" type="file" accept="image/gif, image/jpeg, image/png" onchange="readURL(this);" />
</div>
<div class="form-group">
<label for="content">Message</label>
<textarea id="content" name="content" rows="10" class="form-control" placeholder="Écrivez un message ..."></textarea>
</div>

<script>
function readURL(input) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
$("#fileinput").attr("src", e.target.result);
$("#content").val(e.target.result);
};
reader.readAsDataURL(input.files[0]);
}
}   
</script>

我想在bbcode编辑器中添加base64 img(textarea是#content)。 其实是工作,但我想要这个:

[img] data:image / png; base64,iVBORw0KGgoAAAAN ... [/ img]

谢谢。

1 个答案:

答案 0 :(得分:0)

假设您已按照脚本的建议成功地包含了jQuery,并且HTML看起来像这样(简化):

<html>
  <body>
    <input type="file" id="file"/>
    <img id="content"/>
  </body>
</html>

然后像这样的脚本将执行您想要的操作:

$(function() {
  function readURL() {
    // Grabbing the DOM object, so that the code follows your general pattern
    input = $(this)[0];
    if (input.files && input.files.length) {
      var reader = new FileReader();
      reader.onload = function () {
        // The attribute you want to change on an img tag is "src" not "val"
        $("#content").attr("src", reader.result);
      }
      reader.readAsDataURL(input.files[0]);
    }
  }
  // Bind the readURL function to the change event on our file input
  $("#file").change(readURL);
});