js粘贴事件 - 图片粘贴上传

8个月前 / 0 评论 / 4697 阅读 / 正在检测是否收录...

前段时间总有些用户问我能不能增加个图片粘贴上传功能,今天才有时间去研究这个。后端代码我就不写出来了,每个主题都不一样。前端JS代码如下:

<script>
setPasteImg();
//获取粘贴板上的图片
function setPasteImg() {
    //粘贴事件
    document.addEventListener('paste',
    function(event) {
        if (event.clipboardData || event.originalEvent) {
            var clipboardData = (event.clipboardData || event.originalEvent.clipboardData);
            if (clipboardData.items) {
                var blob;
                for (var i = 0; i < clipboardData.items.length; i++) {
                    if (clipboardData.items[i].type.indexOf("image") !== -1) {
                        blob = clipboardData.items[i].getAsFile();
                    }
                }
                var render = new FileReader();
                render.onload = function(evt) {
                    //输出base64编码
                    var base64 = evt.target.result;
                    var fd = new FormData();
                    fd.append("image", base64);
                    $.ajax({
                      url: "上传接口",
                      type: "POST",
                      processData: false,
                      contentType: false,
                      data: fd,
                      success: function(result) {
                        //result就是返回的图片地址,怎么使用看你们自己
                      }
                    });
                }
                render.readAsDataURL(blob);
            }
        }
    })
}
 </script>

评论

取消