我的编程空间,编程开发者的网络收藏夹
学习永远不晚

vue如何使用el-upload上传文件及Feign服务间传递文件

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

vue如何使用el-upload上传文件及Feign服务间传递文件

这篇文章主要介绍了vue如何使用el-upload上传文件及Feign服务间传递文件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

一、前端代码

<el-upload class="step_content" drag
         action="string"
         ref="upload"
         :multiple="false"
         :http-request="createAppVersion"
         :data="appVersion"
         :auto-upload="false"
         :limit="1"
         :on-change="onFileUploadChange"
         :on-remove="onFileRemove">
    <i class="el-icon-upload"></i>
    <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>

</el-upload>

 <div class="mgt30">
    <el-button v-show="createAppVisible" :disabled="createAppDisable" type="primary" class="mgt30"
          @click="onSubmitClick">立即创建
    </el-button>
 </div>

....

 onSubmitClick() {
    this.$refs.upload.submit();
   },

   createAppVersion(param) {
    this.globalLoading = true;

    const formData = new FormData();
    formData.append('file', param.file);
    formData.append('appVersion', JSON.stringify(this.appVersion));

    addAppVersionApi(formData).then(res => {
     this.globalLoading = false;
     this.$message({message: '创建APP VERION 成功', type: 'success'});
     this.uploadFinish();
    }).catch(reason => {
     this.globalLoading = false;
     this.showDialog(reason);
    })

   },

说明:

  1. el-upload 的 ref="upload" 给这个组件起个变量名,以便 js逻辑代码可以引用

  2. http-request="createAppVersion" el-upload 上传使使用自定义的方法

  3. :data="appVersion" 上传时提交的表单数据

  4. onSubmitClick 方法中会调用el-upload.submit()方法,进而调用createAppVersion()方法

  5. 组成表单参数,取得上传的file 和 其它参数

const formData = new FormData();
formData.append('file', param.file);
formData.append('appVersion', JSON.stringify(this.appVersion));

6.addAppVersionApi 最终会调用下面的方法,其中formData就是param, 请求需要加header: 'Content-Type': 'multipart/form-data'

 function httpPostMutipartFileAsyn(url, param) {
 return new Promise((resolve, reject) => {
  request({
   url: url,
   headers: {
    'Content-Type': 'multipart/form-data'
   },
   method: 'post',
   data: param
  }).then(response => {
   if (response.data.status.code === 0) {
    resolve(response.data)
   } else {
    reject(response.data.status)
   }
  }).catch(response => {
   reject(response)
  })
 })
}

二、后端代码

1.后端controller接口

@PostMapping("/version/add")
  public RestResult addAppVersion(@RequestParam("appVersion") String appVersion,
                  @RequestParam("file") MultipartFile multipartFile) {

    ....
    
    return new RestResult();
  }

三、Feign 实现服务间传递MultipartFile参数

Controller的addAppVersion()接口,收到上传的文件后,需要通过Http调用远程接口,将文件上传到资源服务。一开始尝试使用OKHttp 和 RestTemplate 实现,但是这两种方法都必须将文件先保存,无法直接传递MultipartFile参数,然后才能通过OKHttp 和 RestTemplate提供的相关接口去实现。 本着不想在本地保存临时文件的,找到了通过Feign解决的一种方式

1.添加如下依赖:

<dependency>
      <groupId>io.github.openfeign.form</groupId>
      <artifactId>feign-form</artifactId>
      <version>3.0.3</version>
    </dependency>

    <dependency>
      <groupId>io.github.openfeign.form</groupId>
      <artifactId>feign-form-spring</artifactId>
      <version>3.0.3</version>
    </dependency>

    <dependency>
      <groupId>commons-fileupload</groupId>
      <artifactId>commons-fileupload</artifactId>
      <version>1.3.3</version>
    </dependency>

2.Feign 接口实现

@FeignClient(name = "resource-client",url = "http://xxxx",path = "resource",configuration = ResourceServiceFeignClient.MultipartSupportConfig.class)
public interface ResourceServiceFeignClient {

  @PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
  Resource upload(@RequestPart("file") MultipartFile file);

  class MultipartSupportConfig {
    @Bean
    public Encoder feignFormEncoder() {
      return new SpringFormEncoder();
    }
  }

}

这里Feign是通过url实现的接口调用,并没有通过SpringCloud注册中心服务发现来实现接口调用,因为我所在的项目是独立在服务化体系外的

3.将Feign接口自动注入,正常使用就行了。

感谢你能够认真阅读完这篇文章,希望小编分享的“vue如何使用el-upload上传文件及Feign服务间传递文件”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

vue如何使用el-upload上传文件及Feign服务间传递文件

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

vue3如何使用el-upload上传文件

el-upload上传文件在项目开发的过程中上传文件的需求是经常会遇到的,这篇文章我们就详细介绍使用elementplus中el-upload来上传文件了。我们先来看一下el-upload可以配置哪些属性和事件。属性action:请求urlheaders:设置上传的请求头部method:设置上传请求方法multiple:是否支持多选文件data:上传时附带的额外参数name:上传的文件字段名with-credentials:支持发送cookie凭证信息以上这些参数都是采用action的默认方式请
2023-05-15

怎么使用el-upload组件实现递归多文件上传

本篇内容介绍了“怎么使用el-upload组件实现递归多文件上传”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、需求描述:在页面上点击按钮
2023-07-05

vue怎么使用el-upload实现文件上传功能

这篇文章主要介绍了vue怎么使用el-upload实现文件上传功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue怎么使用el-upload实现文件上传功能文章都会有所收获,下面我们一起来看看吧。uploa
2023-06-30

如何使用vue+springboot上传大文件

这篇文章主要介绍“如何使用vue+springboot上传大文件”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何使用vue+springboot上传大文件”文章能帮助大家解决问题。逻辑需要做大文件
2023-07-06

elementUI使用el-upload上传文件写法及避坑总结(上传图片/视频到本地/服务器及回显+删除)

upload上传是前端开发很常用的一个功能,下面这篇文章主要给大家介绍了关于elementUI使用el-upload上传文件写法及避坑的相关资料,包括上传图片/视频到本地/服务器及回显+删除,需要的朋友可以参考下
2023-03-08

如何解决feign微服务间的文件上传报错问题

本篇内容介绍了“如何解决feign微服务间的文件上传报错问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!A微服务调用B服务的上传文件接口报
2023-06-20

微服务之间怎么通过feign调用接口上传文件

这篇文章主要介绍“微服务之间怎么通过feign调用接口上传文件”,在日常操作中,相信很多人在微服务之间怎么通过feign调用接口上传文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”微服务之间怎么通过feig
2023-06-20

node.js如何使用express-fileupload中间件实现文件上传

本篇内容介绍了“node.js如何使用express-fileupload中间件实现文件上传”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!目
2023-06-20

如何使用安全的文件传输协议(SFTP)保护CentOS服务器上的文件传输

SFTP是一种加密协议,能够安全地传输文件。本文指导您在CentOS服务器上配置SFTP,包括安装OpenSSH、启用SFTP子系统、创建SFTP用户和配置SFTP访问权限。此外,还提供了使用SFTP客户端连接到服务器和实施额外安全措施(如公钥认证和端口转发)的指南。通过遵循这些步骤,您可以有效保护文件传输并降低敏感数据泄露的风险。
如何使用安全的文件传输协议(SFTP)保护CentOS服务器上的文件传输
2024-04-13

如何使用安全的文件传输协议(SFTP)保护CentOS服务器上的文件传输

要在CentOS服务器上使用安全的文件传输协议(SFTP)来保护文件传输,需要执行以下步骤:1. 安装OpenSSH服务器:```shellsudo yum install openssh-server```2. 启动OpenSSH服务器并
2023-10-09

如何使用阿里云服务器快速上传文件

在日常工作中,我们经常需要将文件上传到云端服务器上,以便在不同的设备和地点都能够方便地访问和共享这些文件。阿里云服务器是一种稳定可靠的云计算服务,提供了强大的计算、存储和网络资源,可以满足各种应用的需求。本文将介绍如何使用阿里云服务器快速上传文件的方法。步骤一:创建阿里云服务器实例首先,我们需要登录阿里云控制台,
如何使用阿里云服务器快速上传文件
2024-01-20

如何使用阿里云FTP上传文件到服务器

阿里云FTP是阿里云提供的文件传输协议服务,用户可以通过FTP协议,将本地文件上传到阿里云服务器,或者从阿里云服务器下载文件到本地。本文将详细介绍一下如何使用阿里云FTP上传文件到服务器。步骤一:注册和登录阿里云账号首先,你需要在阿里云官网上注册一个账号,然后登录你的账号。如果你已经有阿里云账号,可以直接跳过这一
如何使用阿里云FTP上传文件到服务器
2023-11-18

如何使用阿里云服务器向手机上传文件

在现代信息化时代,移动设备已经成为我们生活中不可或缺的一部分。为了方便携带和随时访问文件,我们需要将文件从电脑或者其他存储设备传输到手机中。阿里云服务器作为云计算服务的一种形式,为用户提供了强大的计算、存储和网络能力。本文将介绍如何利用阿里云服务器来实现文件从服务器到手机的传输。详细说明:登录阿里云控制台:首先,您需要
如何使用阿里云服务器向手机上传文件
2024-01-01

编程热搜

目录