vue实现粘贴截图上传图片

vue实现粘贴截图上传图片

html

<div class="box">
  <div id="preview" v-on:paste="handlePaste">
      <span>将图片按Ctrl+V 粘贴至此处</span>
  </div>
  <el-button
        v-on:click="uploadPlans"
      >上传文件</el-button>
</div>  

js 

 // 监听粘贴操作
    handlePaste(event) {
      const items = (event.clipboardData || window.clipboardData).items;
      let file = null;

      if (!items || items.length === 0) {
        this.$message.error("当前浏览器不支持本地");
        return;
      }
      // 搜索剪切板items
      for (let i = 0; i < items.length; i++) {
        if (items[i].type.indexOf("image") !== -1) {
          file = items[i].getAsFile();
          break;
        }
      }
      if (!file) {
        this.$message.error("粘贴内容非图片");
        return;
      }
      // 此时file就是我们的剪切板中的图片对象
      // 如果需要预览,可以执行下面代码
      const reader = new FileReader();
      reader.onload = event => {
        preview.innerHTML = `<img src="${event.target.result}">`;
      };
      reader.readAsDataURL(file);
      this.file = file;
    },
    //上传文件成功后回调
     uploadPlans() {
      let file = this.file;
      if (!file) {
        this.$message.error("请粘贴图片后上传");
        return;
      }
      this.loading = true;
      let form = new FormData();
      form.append("file", file);
      form.append("type", this.type);
    //uploadCertificate是封装的axios请求,自己根据需求传参
      uploadCertificate(form)
        .then(data => {
          if (data.data && data.data.success) {
            this.certificate_pic = data.data.data.source;
            this.$message.success(this.name + "上传成功!");
          } else {
            this.$message.error(this.name + "上传失败!");
          }
        }).catch(() => {});
    },



这只是最基本的功能实现代码,自己酌情添加需求即可。完成结果如下,仅仅支持截图上传,如qq、微信、钉钉等应用截图后直接粘贴即可。

### 正点原子 ESP8266 连接阿里云 IoT 平台 为了使正点原子ESP8266模块成功连接阿里云IoT平台,需完成一系列配置工作。这不仅涉及硬件设置还包括软件编程。 #### 获取必要参数 在开始之前,需要从阿里云获取`ProductKey`、`DeviceName`以及`DeviceSecret`个重要参数[^3]。这些信息用于构建唯一的身份验证字符串,确保设备能安全接入云端服务。 #### 编写初始化代码 下面展示了一段Python风格伪代码来说明如何利用上述参数初始化网络连接并登录到阿里云服务器: ```python import network from umqtt.simple import MQTTClient def connect_wifi(ssid, password): wlan = network.WLAN(network.STA_IF) wlan.active(True) if not wlan.isconnected(): print('Connecting to WiFi...') wlan.connect(ssid, password) while not wlan.isconnected(): pass print('Network config:', wlan.ifconfig()) # 替换成自己的WiFi名称和密码 connect_wifi("your_ssid", "your_password") client_id = "{device_name}" # 设备名 product_key = "{product_key}" # 产品密钥 device_secret = "{device_secret}" # 设备密钥 server_address = f"{product_key}.iot-as-mqtt.cn-shanghai.aliyuncs.com" port_number = 1883 username = client_id + "&" + product_key password = device_secret topic_publish = "/sys/{}/{}/thing/event/property/post".format(product_key, client_id) c = MQTTClient(client_id=client_id, server=server_address, port=port_number, user=username, password=password, keepalive=60) def publish_data(wendu_value, shidu_value): payload = {"params": {"wendu": wendu_value,"shidu": shidu_value}} c.publish(topic_publish, str(payload)) ``` 这段代码实现了Wi-Fi连接建立、MQTT客户端创建及消息发布功能。其中特别注意的是用户名格式应为`<deviceName>&<productKey>`而密码则直接采用`deviceSecret`[^2]。 #### 定期发送传感器数据 为了让系统持续运作并向云端上传最新测量结果,通常会在后台启动一个独立的任务循环负责定期采集环境变量并通过定义好的接口提交给远程主机。这部分逻辑已经在提供的参考资料中有具体体现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值