首页 > 其他分享 >网易云信上传图片 点击两次才能上传图片

网易云信上传图片 点击两次才能上传图片

时间:2023-04-21 15:59:12浏览次数:27  
标签:function console log value 云信 obj 上传 图片

网易云信上传图片 点击两次才能上传图片

原因:之前异步比打开文件夹先执行

需要按两次才能上传文件fileInputElement.value的值永远是

需要监视文件选择器有没有选择文件,如果选择了再执行异步,没有选择就取消

    const fileInputElement = ref<null | HTMLElement>(null);
    const percentage = ref("");
    const percentage2 = ref("");
    function handleFileChange(event: Event) {
      const inputElement = event.target as HTMLInputElement;
      if (inputElement.files && inputElement.files.length > 0) {
        // 用户选择了文件,更新 percentage 的值为文件名
        percentage2.value = inputElement.files[0].name;
        console.log("选择了文件");
        successupload();
      } else {
        // 用户取消了选择,更新 percentage 的值为空
        percentage2.value = "";
        console.log(" 用户取消了选择");
      }
    }
    function uploadpic() {
      console.log(fileInputElement.value);
      fileInputElement.value!.dispatchEvent(new MouseEvent("click"));
    }
    const typeimage = "image";
    function successupload() {
      var errors = null;

      $uikit.sendFile({
        scene: "p2p",
        to: useraccount,
        type: typeimage,
        fileInput: fileInputElement.value,
        fastPass: '{"w":200,"h":110}',
        beginupload: function (upload) {},
        uploadprogress: function (obj) {
          console.log("文件总大小: " + obj.total + "bytes");
          console.log("已经上传的大小: " + obj.loaded + "bytes");
          console.log("上传进度: " + obj.percentage);
          console.log("上传进度文本: " + obj.percentageText);

          percentage.value = obj.percentageText;

          setTimeout(
            () => {
              percentage.value = "";
            },
            obj.percentageText === "100%" ? 1000 : 0
          );
        },
        uploaddone: function (error, file) {
          console.log("上传" + (!error ? "成功" : "失败"));
          errors = error;
          fileInputElement.value = null;
        },
        beforesend: function (msg) {
          console.log("正在发送p2p image消息, id=" + msg.idClient);
          //上传成功后才行把
          if (!errors) {
            pushMsg(msg);
          }
        },
      });
    }
              <button
                class="btn btn-sm btn-icon btn-active-light-primary me-1"
                type="button"
                data-bs-toggle="tooltip"
                title="Coming soon"
                @click="uploadpic"
              >
                <span class="svg-icon svg-icon-2">
                  <inline-svg :src="getAssetPath('media/svg/chat/pic.svg')" />
                </span>

                <input
                  type="file"
                  accept="image/*"
                  ref="fileInputElement"
                  style="display: none"
                  @change="handleFileChange($event)"
                />
              </button>

标签:function,console,log,value,云信,obj,上传,图片
From: https://www.cnblogs.com/xxdmua/p/17340657.html

相关文章

  • node实现文件上传和文件下载
    node实现文件上传和下载安装multer和fs模块npminstallmulterfs--save//multer文件上传,fs文件处理上传文件并存放相应路径下multer({dest:"upload"}).single('file')//dest后是文件存放的地址,single中的为filename//.single(fieldname)-单个文件上传......
  • spring boot项目上传文件
    严重:Servlet.service()forservlet[dispatcherServlet]incontextwithpath[]threwexception[Requestprocessingfailed;nestedexceptionisorg.springframework.web.multipart.MaxUploadSizeExceededException:Maximumuploadsizeexceeded;nestedexception......
  • node实现登录图片验证码
    实现这里的图形验证码我是用的node里svg-captcha模块,可以全部支持字符和数字,全平台支持,用起来很简单。安装cnpmisvg-captcha--save在使用的地方导入varsvgCaptcha=require('svg-captcha');获取验证码安装cookie-parser,作用是将获取到的session保存到cookie,方便......
  • PHPCMS 实现ctrl+v粘贴图片并上传、word粘贴带图片
    ​ 这种方法是servlet,编写好在web.xml里配置servlet-class和servlet-mapping即可使用后台(服务端)java服务代码:(上传至ROOT/lqxcPics文件夹下)<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@     page contentType="text/html;cha......
  • java实现两张图片的相似度
    图片相似度java实现:https://zhuanlan.zhihu.com/p/568827637https://github.com/MingGH/calculate-pic-looklike 前端html5调用摄像头:https://www.cnblogs.com/hss-blog/p/9984878.htmlhttps://jeff_zhong.gitee.io/demo/dist/camera.html需要改正的是:<inputid="file"ty......
  • 帝国CMS 实现ctrl+v粘贴图片并上传、word粘贴带图片
    ​ 在之前在工作中遇到在富文本编辑器中粘贴图片不能展示的问题,于是各种网上扒拉,终于找到解决方案,在这里感谢一下知乎中众大神以及TheViper。通过知乎提供的思路找到粘贴的原理,通过TheViper找到粘贴图片的方法。其原理为一下步骤:监听粘贴事件;【用于插入图片】获取光标位置;【......
  • 动易CMS 实现ctrl+v粘贴图片并上传、word粘贴带图片
    ​如何做到ueditor批量上传word图片?1、前端引用代码<!DOCTYPE html PUBLIC "-//W3C//DTDXHTML1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>......
  • vue3 文件上传,fileChange中的一个问题,第二个参数问题
    这里fileChange第二个参数,不可也用fileList会污染已经定义的响应式变量fileList<scriptsetup>constfileList=ref([])constfileChange=(file,fileList)=>{fileList.value=fileList;}</script>这里第二个参数不好再用fileList,因为上面已经定义了响应式对象......
  • SiteFactory 实现ctrl+v粘贴图片并上传、word粘贴带图片
    ​ 自动导入Word图片,或者粘贴Word内容时自动上传所有的图片,并且最终保留Word样式,这应该是Web编辑器里面最基本的一个需求功能了。一般情况下我们将Word内容粘贴到Web编辑器(富文本编辑器)中时,编辑器都无法自动上传图片。需要用户手动一张张上传Word图片。如果只有一张图片还能够接......
  • 2023年4月21日-关于远程feign调用实现文件上传下载
    一、客户需求:做一个查询程序,客户提供一个excel模板,将查询结果保存到excel模板中,上传到文件服务,供客户下载使用。二、代码实现//服务A,文件上传@ApiOperation("上传文件-demo")@PostMapping(value="/uploadDemo/{busType}/{billId}")publicResBeanuploadFile(@PathVariabl......