【前端】js监听粘贴事件 获取到粘贴的图片展示并上传

【前端】js监听粘贴事件 获取粘贴的图片

js 监听粘贴事件 拿到图片 展示并上传

要在JavaScript中监听粘贴事件、获取粘贴的图片并展示,以及上传图片,你可以使用以下代码作为起点。请注意,这里使用了一个简单的HTML结构,你可能需要根据你的应用程序的需求进行适当的修改。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Paste Event Example</title>
</head>
<body>
    <input type="file" id="fileInput" style="display:none;" />
    <div id="imageContainer"></div>

    <script>
        document.addEventListener('DOMContentLoaded', function () {
            // 获取相关元素
            var fileInput = document.getElementById('fileInput');
            var imageContainer = document.getElementById('imageContainer');

            // 监听粘贴事件
            document.addEventListener('paste', function (event) {
                var items = (event.clipboardData || event.originalEvent.clipboardData).items;

                for (var i = 0; i < items.length; i++) {
                    if (items[i].type.indexOf('image') !== -1) {
                        var blob = items[i].getAsFile();
                        var reader = new FileReader();

                        reader.onload = function (e) {
                            // 展示图片
                            var img = new Image();
                            img.src = e.target.result;
                            imageContainer.appendChild(img);

                            // 在这里添加上传逻辑,将blob或base64数据上传到服务器
                            // 你可以使用XMLHttpRequest、Fetch API或其他方法进行上传
                            // 例如,可以使用FormData对象上传
                            // var formData = new FormData();
                            // formData.append('image', blob, 'image.png');
                            // 然后使用fetch或XMLHttpRequest发送formData
                        };

                        // 读取粘贴的图片数据
                        reader.readAsDataURL(blob);
                    }
                }
            });

            // 如果需要通过文件选择器上传图片,可以使用以下代码
            fileInput.addEventListener('change', function (event) {
                var file = event.target.files[0];
                var reader = new FileReader();

                reader.onload = function (e) {
                    // 展示图片
                    var img = new Image();
                    img.src = e.target.result;
                    imageContainer.appendChild(img);

                    // 在这里添加上传逻辑,将文件上传到服务器
                    // 你可以使用XMLHttpRequest、Fetch API或其他方法进行上传
                    // 例如,可以使用FormData对象上传
                    // var formData = new FormData();
                    // formData.append('image', file, file.name);
                    // 然后使用fetch或XMLHttpRequest发送formData
                };

                // 读取文件数据
                reader.readAsDataURL(file);
            });
        });
    </script>
</body>
</html>

这个例子中,我们监听了paste事件,检查粘贴板中的每一项是否是图片。如果是图片,我们使用FileReader读取图片数据,并在页面上展示图片。在展示图片的同时,你可以执行上传操作,将图片上传到服务器。如果你想通过文件选择器上传图片,也提供了相应的代码。

猜你喜欢

转载自blog.csdn.net/G971005287W/article/details/134334306