0
点赞
收藏
分享

微信扫一扫

ctrl+v 上传图片

minute_5 2022-03-12 阅读 54
  document.addEventListener('paste', function(event) {
            var isChrome = false;
            if (event.clipboardData || event.originalEvent) {
                var clipboardData = (event.clipboardData || event.originalEvent.clipboardData);
                if (clipboardData.items) {
                    var items = clipboardData.items,
                        len = items.length,
                        blob = null;
                    isChrome = true;
                    //阻止默认行为即不让剪贴板内容在div中显示出来
                    event.preventDefault();

                    //在items里找粘贴的image,据上面分析,需要循环  
                    for (var i = 0; i < items.length; i++) {
                        blob = items[i].getAsFile();
                        uploadImgFromPaste(blob)
                    }
                    //在items里找粘贴的image,据上面分析,需要循环  
                    // blob = items[0].getAsFile();
                    // // console.log(blob)
                    // uploadImgFromPaste(blob)

                }
            }
        })

        function uploadImgFromPaste(file) {
            if (!file) { return }
            getBase64(file, function(result) {
                var demoListView = $('#enclList');
                var index = ctrlVFiles.length;
                // var result = getBase64(file);
                // 读取本地文件
                var fileName = file.name;
                var suffixIndex = fileName.lastIndexOf(".");
                var suffix = fileName.substring(suffixIndex + 1).toUpperCase();
                var tr
                if (suffix != "BMP" && suffix != "JPG" && suffix != "JPEG" && suffix != "PNG" && suffix != "GIF") {
                    tr = $(['<tr id="upload-' + index + '">',
                        '<td>' + file.name + '</td>',
                        '<td>' + (file.size / 1024).toFixed(1) + 'kb</td>',
                        '<td>等待上传</td>',
                        '<td>',
                        '<button class="layui-btn layui-btn-xs demo-reload layui-hide">重传</button>',
                        '<button class="layui-btn layui-btn-xs layui-btn-danger demo-delete">删除</button>',
                        '</td>',
                        '</tr>'
                    ].join(''));
                } else {
                    tr = $(['<tr id="upload-' + index + '">',
                        '<td><a  class="media" href="javascript:void(0);" onclick="BugObj.openImg(\'' + result + '\',\'' + file.name + '\')" >' + file.name + '</a></td>',
                        '<td>' + (file.size / 1024).toFixed(1) + 'kb</td>',
                        '<td>等待上传</td>',
                        '<td>',
                        '<button class="layui-btn layui-btn-xs demo-reload layui-hide">重传</button>',
                        '<button class="layui-btn layui-btn-xs layui-btn-danger demo-delete">删除</button>',
                        '</td>',
                        '</tr>'
                    ].join(''));
                }
                ctrlVFiles[index] = file;
                // 删除
                tr.find('.demo-delete').on('click', function() {
                    delete ctrlVFiles[index]; // 删除对应的文件
                    tr.remove();
                    console.log(ctrlVFiles)
                        // uploadListIns.config.elem.next()[0].value = ''; // 清空 input// file// 值,以免删除后出现同名文件不可选
                });
                demoListView.append(tr);
            })
        }

        window.sendFile = function() {
            for (var i = 0; i < ctrlVFiles.length; i++) {
                var file = ctrlVFiles[i];
                if (file) {
                    var formData = new FormData();
                    formData.append("file", file);
                    //追加额外的参数
                    formData.append("bugId", $("#bugId").val());
                    $.ajax({
                        url: baseUrl + "/bug/bugFileUpload",
                        type: "post",
                        data: formData,
                        contentType: false,
                        processData: false,
                        dataType: 'json',
                        success: function(res) {
                            window.parent.BugObj.search(0);
                            var index = parent.layer.getFrameIndex(window.name); //获取窗口索引  
                            parent.layer.close(index);
                        }
                    })
                }
            }

        }

        function getBase64(blob, fn) {
            var reader = new FileReader();
            reader.onload = function(event) {
                var base64_str = event.target.result
                fn(base64_str)
            }
            reader.readAsDataURL(blob);
        }
    }
举报

相关推荐

0 条评论