onchange 上傳照片後 append 產生一個區塊?

发布于 2022-09-07 16:23:36 字数 1757 浏览 17 评论 0

$('body').on('change', '.add-btn',function(e){


    var id = $('.admin-upload-inline').length + 1;
    var iconLayout = $('<div class="admin-upload-inline add-btn pointer" id="icon-layout-'+id+'">');
    var fileInput = $(
      '<input type="hidden" id="file'+id+'" name="icon[]" class="admin-upload" value="">'
    + '<img src="../images/30.png" id="pre'+id+'" class="admin-upload-review">');

    iconLayout.append(fileInput);
    $(".addend-display").append(iconLayout);

    console.log(id);
    var reader = new FileReader();
    reader.onload = function(e) {
      $('#pre' + id).attr('src', e.target.result);
      $('#file' + id).attr('value', e.target.result);

      console.log(e.target.result);
      reader.readAsDataURL($('#file'+id));
    }
<div class="admin-upload-inline add-btn pointer">
        <input type="file" id="file1" name="icon[]" class="admin-upload" accept="image/jpeg, image/png, image/jpg">
        <img src="../images/30.png" id="pre1" class="admin-upload-review">
        <i class="material-icons upload_cover_icon admin-upload-icon-add">add_circle_outline</i>
      </div>

      <div class="addend-display">

      </div>

請問如何當我按下 add-btn 後,圖片能夠經由 FileReader 產生的base64直接丟到我生成過的 隱藏欄位和 img裡面?我發現我都抓不到 data64.....

補充!

foreach ($_POST['icon'] as $value) {
      echo $value;
      preg_match('/^(data:\s*image\/(\w+);base64,)/', $value, $result);
        $file_ext = '.'.$result[2];
        file_put_contents('../../images/product/'.md5(time()).$file_ext, base64_decode(str_replace($result[1], '', $value)));
    }
怎麼都下載不到全部的 base64,都是只有抓到最後一個?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

瞄了个咪的 2022-09-14 16:23:36

readAsDataURL应该在onload事件外面

var fileReader = new FileReader(),
    file = input.files[0],
    fileType = file.type;
fileReader.onload = function(){
    if(/^image/.test(fileType)){
        
    }
}
fileReader.readAsDataURL(file);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文