日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

SparkMD5獲取不同圖片的md5顯示相同,解決辦法

作者:ChangYan. 更新時間: 2023-07-08 編程語言

按道理來說,不同的圖片應該具有不同的md5,但是在測試的時候發現上傳不同的圖片md5總是一樣的。
在這里插入圖片描述
看看代碼:

    handleFileChange(file) {
      console.log(file) // 變化的文件對象
      const reader = new FileReader()
      reader.readAsDataURL(file.raw)
      var Spark = new SparkMD5.ArrayBuffer()
      const that = this
      reader.onload = function(event) {
        const img_base64 = event.target.result
        console.log(img_base64)
        that.basic_config_info.logo_stream = img_base64
        Spark.append(event.target.result)
        var md5 = Spark.end()
        console.log('md5')
        console.log(md5)
        if (that.basic_config_info.logo_md5 === md5) {
          console.log('相等')
        } else {
          console.log('不相等')
        }
        that.basic_config_info.logo_md5 = md5
      }
    },

在這里插入圖片描述
我既要獲取到圖片的base64也要獲取到md5,而reader.readAsDataURL(file.raw)用來獲取base64,如果用來獲取md5,就會出現相同的md5,正確獲取md5應該使用reader.readAsArrayBuffer(file.raw)
所以應該設置兩個不同的reader來分別獲取base64和md5
下面是正確的代碼:

    handleFileChange(file) {
      console.log(file) // 變化的文件對象
      const stream_reader = new FileReader()
      const md5_reader = new FileReader()
      stream_reader.readAsDataURL(file.raw)
      md5_reader.readAsArrayBuffer(file.raw)
      const that = this
      stream_reader.onload = function(event) {
        const img_base64 = event.target.result
        console.log(img_base64)
        that.basic_config_info.logo_stream = img_base64
      }
      md5_reader.onload = function(event) {
        var Spark = new SparkMD5.ArrayBuffer()
        Spark.append(event.target.result)
        var md5 = Spark.end()
        console.log('md5')
        console.log(md5)
        that.basic_config_info.logo_md5 = md5
      }
    },

然后上傳不同的圖片,就會發現具有不同的md5啦!
在這里插入圖片描述

原文鏈接:https://blog.csdn.net/changyana/article/details/130974501

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新