日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

图片传输到ipfs节点然后将生成的ipfs访问链接存到区块链

發布時間:2024/1/8 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 图片传输到ipfs节点然后将生成的ipfs访问链接存到区块链 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在區塊鏈上直接存儲圖片不僅時間很長,而且需要進行分片和拼接,比較麻煩,我們直接使用ipfs存儲圖片

流程描述:

  • 首先在本地搭建ipfs節點,使用go-ipfs版本進行搭建,搭建完之后,使用 ipfs daemon指令啟動ipfs服務監聽,同時占用8080端口。

    使用時我們需要先打開ipfs服務,再啟動項目,避免端口沖突。正確啟動之后的命令行應該如下圖所示。

  • 服務啟動成功后,我們首先在我們的前端綁定一個input,這個input的type是file類型,同時指定一個id,我們通過這個id獲取到這個文件(1)。然后將這個文件賦值(2)

    1.<input type="file" class="form-control add_img" id="co_img" placeholder="Ex: 請選擇圖片">2.const file = document.getElementById("co_img").files[0];
  • 實現這兩步之后,我們相當于把文件取出來了,取出來之后,我們再把這個文件當成參數傳到saveImageOnIpfs方法里,saveImageOnIpfs方法里有一個ipfs.add()方法,此方法就是將圖片傳輸到ipfs上,同時返回傳輸回的結果,會有一個hash值返回,resolve函數可以將hash值作為返回值再傳到.then里的函數的參數,然后拼接成一個
    類似這種的鏈接,即href,然后我們再在這個this函數里面調用App.addcollectionsUp方法把鏈接和相關數據上傳到區塊鏈上。

    uploadimg:async function(){const file = document.getElementById("co_img").files[0];console.log(file)if(file==null){alert("未選擇文件");}const httpGateway = 'http://127.0.0.1:8080'this.saveImageOnIpfs(file).then(function(hash){//這里就把圖片的hash取出來之后同時拼接到了鏈接后面const href = `${httpGateway}/ipfs/${hash}`img_href = href;console.log(img_href);App.addcollectionsUp();})},saveImageOnIpfs: function(input) {return new Promise(async(resolve, reject) => {try {//ipfs的add方法是將東西添加到ipfs網絡上let results = await ipfs.add(input);let hash1 = results.path;resolve(hash1);} catch (err) {console.error(err);reject(err);}})},
  • addcollectionsUp函數定義如下:

    addcollectionsUp: async function() {let _conum = $("#co_num").val();// console.log(img_href);let _coprice = $("#co_price").val();let _coname = $("#co_name").val();let _cointro = $("#co_intro").val();const { addCollectionUp } = this.meta.methods;let result = await addCollectionUp(_conum, _coprice, _coname,_cointro,img_href).send({ from: this.account });console.log(result);window.location.reload(); },

    我們只需要把生成的href賦值給img_href就可以直接傳到區塊鏈上了。然后再取出來在前端渲染即可。

  • 總結

    以上是生活随笔為你收集整理的图片传输到ipfs节点然后将生成的ipfs访问链接存到区块链的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。