以太坊实战篇-Vue上传文件到IPFS

本文介绍如何在以太坊实战项目中,利用Vue将文件上传至IPFS。IPFS是一个去中心化的存储系统,与传统云存储不同,其资源分散在多个节点。文章详细阐述了从初始化Vue项目,安装依赖,到添加文件上传功能的步骤,并展示了成功上传后的效果,用户可通过公共网关访问上传的文件。
摘要由CSDN通过智能技术生成

以太坊实战篇-Vue上传文件到IPFS

IPFSInterPlanetary File System的简称,中文是星际文件系统。

它和百度网盘在使用上区别不大,最大的区别是百度网盘的资源都掌控在百度这一家企业手中,而IPFS中的资源则是掌握在无数个IPFS节点中,没有任何人可以说,“嗨,这个文件不能上传,即使上传了不能下载!”。

  1. 初始化项目

首先拷贝一个初始化好的空白Vue项目到本地,这个项目是我们的基础项目dapp-basic,拷贝时直接将其命名为ipfs

$ git clone https://gitee.com/ibmeye/dapp-basic ipfs

运行下面的命令安装依赖包并启动项目

$ yarn
$ yarn run serve

启动后可以看到如下界面

image-20211231145159853

  1. 在项目根下运行下面的命令,添加ipfs依赖
$ yarn add ipfs-http-client
  1. 打开src/components/MainContent.vue文件,添加图片标签、按钮标签及其处理函数。

修改前的代码(只包含部分代码,详见附录中的源码下载地址):

<template>
  <el-container>
    <el-container>
      <el-header>
        <span class="bilibili-text">DApp开发</span>
        <span class="tarot-text">基础模板</span>
        <span class="account-text">登录账户</span>
      </el-header>
      <el-main>
        <div class="img-wrapper">
          <el-image class="img-panel" :src="src"></el-image>  
          <el-button class="img-btn">上传图片</el-button
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Vue3.0中使用ant-design-vue上传文件,可以按照以下步骤进行: 1. 安装ant-design-vue和axios ``` npm install ant-design-vue axios --save ``` 2. 在main.js中引入ant-design-vue和axios,并注册组件 ``` import { createApp } from 'vue' import App from './App.vue' import { Button, Upload } from 'ant-design-vue' import axios from 'axios' const app = createApp(App) // 注册组件 app.use(Button) app.use(Upload) // 注册axios app.config.globalProperties.$axios = axios app.mount('#app') ``` 3. 在组件中使用Upload组件进行文件上传 ``` <template> <div> <a-upload :action="uploadUrl" :headers="uploadHeaders" :data="uploadData" :before-upload="beforeUpload" :on-success="onSuccess" :on-progress="onProgress" :on-error="onError" > <a-button>上传文件</a-button> </a-upload> </div> </template> <script> export default { data() { return { uploadUrl: 'http://localhost:3000/upload', uploadHeaders: { Authorization: 'Bearer ' + localStorage.getItem('token') }, uploadData: { name: 'example' } } }, methods: { beforeUpload(file) { console.log('beforeUpload', file) }, onSuccess(response) { console.log('onSuccess', response) }, onProgress(progress) { console.log('onProgress', progress) }, onError(error) { console.log('onError', error) } } } </script> ``` 在上面的示例中,我们使用了a-upload组件来上传文件。在组件中,我们可以通过props传入一些参数,比如上传接口的地址、请求头、上传的数据等。同时,还可以通过监听事件来处理上传的结果,比如上传成功、上传进度、上传失败等。 需要注意的是,我们在main.js中通过Vue的全局配置将axios注册到了Vue实例中,因此在组件中可以通过this.$axios来发起请求。在上传文件时,需要将文件数据添加到uploadData中,这样才能将文件上传到服务器。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值