自学内容网 自学内容网

前端react中实现直接复制粘贴上传图片

最终效果:
1.在浏览器随便复制一张图片
在这里插入图片描述
2. 在输入框右键/crtl+v粘贴,即出现:
在这里插入图片描述
3.点击发送即可!!

废话不多说,上代码:

  useEffect(() => {
    document.addEventListener('paste', async function (event) {
      var items = (event.clipboardData || window.clipboardData).items;
      var file = null;
      if (items && items.length) {
        // 搜索剪切板items
        for (var i = 0; i < items.length; i++) {
          if (items[i].type.indexOf('image') !== -1) {
            file = items[i].getAsFile();
            break;
          }
        }
      } else {
        console.log('当前浏览器不支持');
        return;
      }
      if (!file) {
        console.log('粘贴内容非图片');
        return;
      }
      // 此时file就是我们的剪切板中的图片对象
      console.log('file', file);

      // 上传文件接口,这里替换成对应的接口即可
      const fileData: any = await postFile(file);
      if (!fileData) {
        // fileData为空说明上传失败,即需回调失败状态
        return message.errorr('上传失败啦~');
      }

    //弹出二次确认发送框
      Modal.confirm({
        title: '确认发送该图片?',
        centered: true,
        icon: null,
        content: (
          <Image
            width={360}
            src={fileData.url}
            // preview
            preview={{
              mask: <div>预览</div>,
            }}
          />
        ),
        okText: '确认',
        onOk: async (file) => {
        // 处理发送。。
         message.success('发送成功')
        },
      });
    });
  }, []);

参考:https://www.zhangxinxu.com/wordpress/2018/09/ajax-upload-image-from-clipboard


原文地址:https://blog.csdn.net/weixin_47793882/article/details/143873401

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!