【uniapp】上传附件+Java后端

一、背景

移动端项目使用uniapp开发,项目有上传附件的需求。现在分享给大家,一起进步

二、前端

关键代码:

uni.chooseFile({type: "all",count: this.count,success: res => {let len = 0;res.tempFiles.forEach((item, index) => {len++;let info = {filename: item.name,filepath: item.path,filetype: this.fileHz(item.name),file: item}let flag = /\.(doc|docx|xls|xlsx|ppt|pdf|zip|rar|jpg|png|jpeg)$/.test(item.name.toLowerCase())//双重保证if (this.size <= info.file.size) {this.$toast("文件最大不超过2M");return}if (flag) {this.upload(material, info, index1);} else {this.$toast("请选择.doc、.docx、.xls、.xlsx、.ppt、.pdf、.zip、.rar格式文件")return}})},fail: err => {console.log(err);}
});/* 截取后缀名 */
fileHz(name) {//获取最后一个.的位置var index = name.lastIndexOf(".");//获取后缀var ext = name.substr(index + 1);return ext
},

发送请求接口:

upload(material, info, index) {const formData = new FormData();if (!info) {this.$toast('请上传文件');return;}formData.append('file', info.file);let para = {//这是额外的参数}formData.append("para", JSON.stringify(para));uni.uploadFile({url: 'htpp:127.0.0.1:8080/xxx/xxxx/xxxxx', //仅为示例,非真实的接口地址filePath: info.file.path,name: 'file',formData: {para: JSON.stringify(para)},success: (uploadFileRes) => {this.$toast("上传成功");},fail: (err) => {this.$toast("提交失败:" + err);},
},

三、后端

关键代码:

public void uploadMaterial(HttpServletRequest request, HttpServletResponse response, JSONObject parado) throws Exception {response.setContentType("text/html;charset=UTF-8");JSONObject result = new JSONObject();try {// 处理入参JSONObject para = JSONObject.parseJSON(parado.getString("para"));MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;CommonsMultipartFile file = (CommonsMultipartFile) multipartRequest.getFile("file");if(file != null){InputStream stream = file.getInputStream();String filename = file.getOriginalFilename();String filetype = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1);byte[] b= IoUtil.getBytes(stream);String base64 = Base64Encoder.encode(b);para.put("base64",base64);para.put("wjmc",filename);para.put("type",filetype);}} catch (BusinessException e) {logger.error("上传材料失败", e);} catch (Exception e) {logger.error("上传材料失败", e);}......
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/35966.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【HDFS】关于Hadoop的IPC.Client类的一些整理

org.apache.hadoop.ipc.Client 类是IPC服务的一个客户端。 IPC请求把一个Writable对象当做参数,返回一个Writable对象当做结果value。 一个IPC服务运行在某个端口上,并且由参数class和value class定义。 Router里的IPC.Client对象就两个 有这样一个类:ClientCache 看名字就…

springboot加载注入bean的方式

在SpringBoot的大环境下&#xff0c;基本上很少使用之前的xml配置Bean&#xff0c;主要是因为这种方式不好维护而且也不够方便。 springboto注入bean主要采用下图几种方式&#xff0c;分为本地服务工程注解声明的bean和外部依赖包中的bean。 一、 springboot装配本地服务工程…

Maven deploy上传远程私服失败

Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy (default-deploy) on project 你的项目: Cannot deploy artifacts when Maven is in offline mode 解决方案&#xff1a; 1.IDEA把这个钩子去掉 2. settings.xml里把 <offline>标…

云计算【第一阶段(23)】Linux系统安全及应用

一、账号安全控制 1.1、账号安全基本措施 1.1.1、系统账号清理 将非登录用户的shell设为/sbin/nologin锁定长期不使用的账号删除无用的账号 1.1.1.1、实验1 用于匹配以/sbin/nologin结尾的字符串&#xff0c;$ 表示行的末尾。 &#xff08;一般是程序用户改为nologin&…

[英语单词] standpoint

The way cancellation works, from an application standpoint, is that when thread A no longer needs the work that thread B is performing, thread A calls pthread_cancel on thread B. 驻足点 from an application standpoint&#xff1b;从应用的驻足点来说。 这个和…

c/c++语言MCU学习笔记

程序数据结构算法 算法&#xff1a;解决问题的方法的步骤 算法的分类&#xff1a; 数值运算法和非数值运算法 算法的表示方法&#xff1b; 自然语言表示法、流程图 N/S NS流程图&#xff0c;又被称为N-S图&#xff0c;或者是盒图&#xff0c;它是一种可视化建模…

SAMformer创新点

SAMformer 提供了一种新的方法来改进变换器&#xff08;Transformer&#xff09;在时间序列预测任务中的性能&#xff0c;特别是针对泛化能力和训练稳定性问题。具体来说&#xff0c;SAMformer结合了两个关键技术&#xff1a;锐度感知最小化&#xff08;Sharpness-Aware Minimi…

鸿蒙登录页面及页面跳转的设计

目录 任务目标任务分析任务实施1.新建工程项目HMLogin2.设计登录页面Index.visual3.设计第二个页面SecondPage4.修改Index.ets代码5.修改SecondPage.ets代码6.运行工程 任务目标 设计一个简单的登录页面&#xff0c;要求可以将第一页的登录信息&#xff0c;传递到第二个页面&a…

Cesium 在加载 3dTiles 如何如何获取ID

文章目录 问题分析问题 加载的 3dTiles 打印content.getFeature(i)出来后如图所示,想获取到id值 分析 var tileset = mapLayer.init3dTileLayer({url:it.url,maximumMemoryUsage: it.maximumMemoryUsage,

一起学Hugging Face Transformers(7) - 使用Transformers 库进行机器翻译(Machine Translation)

文章目录 前言一、 环境准备二、 导入库并加载预训练模型三、 进行翻译四、 支持多语言对五、 调整翻译参数六、 使用具体任务的模型总结 前言 机器翻译&#xff08;Machine Translation&#xff09;是自然语言处理&#xff08;NLP&#xff09;中的一个重要任务&#xff0c;它…

关于RAG优化的几个小技巧

一、背景说明 RAG技术为大型语言模型&#xff08;LLMs&#xff09;提供了从数据源检索到的信息&#xff0c;以支撑其生成的答案。简而言之&#xff0c;RAG就是搜索加上LLM提示&#xff0c;你让模型在提供的信息上下文中回答问题。查询和检索到的上下文都被注入到发送给LLM的提…

Spring Boot 启动流程是怎么样的

引言 SpringBoot是一个广泛使用的Java框架&#xff0c;旨在简化基于Spring框架的应用程序的开发过程。在这篇文章中&#xff0c;我们将深入探讨SpringBoot应用程序的启动流程&#xff0c;了解其背后的机制。 Spring Boot 启动概览 SpringBoot应用程序的启动通常从一个包含 m…

求生之路史低入手 教你怎么使用求生之路创意工坊提高体验性

求生之路是一款抵御丧尸的第一人称射击游戏&#xff0c;四名幸存者联机配合&#xff0c;在现代的城市中&#xff0c;击败各种丧尸还有强大的变种人BOSS&#xff0c;虽然是十几年前的游戏&#xff0c;但是毫不夸张的说&#xff0c;游戏丝毫不过时&#xff0c;目前steam夏促&…

理解SurfaceFlinger在Android中的作用

理解SurfaceFlinger在Android中的作用 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们来探讨Android系统中一个关键的组件——SurfaceFlinger&#xff…

Spring Boot实现多环境配置

1.为什么需要多环境配置&#xff1f; 在实际项目开发过程中&#xff0c;我们往往需要区分开发&#xff0c;测试&#xff0c;联调,预发布&#xff0c;生产等不同的应用环境。这些应用环境用途不同&#xff0c;对应环境的配置项,稳定性,数据质量,保障性,可接触人群等要求也不同&…

Redis持久化(RDB AOF)

Redis持久化 MySQL的事务&#xff0c;有四个比较核心的特性&#xff1a; 原子性一致性持久性&#xff08;和持久化一样&#xff09;&#xff0c;将数据存储在硬盘上&#xff0c;重启主机之后数据仍然存在隔离性 redis是一个内存数据库&#xff0c;把数据存储在内存中&#xff0…

【高考】【填志愿】分数限制下,选好专业还是选好学校?

【高考】选专业时&#xff0c;应避免的误区-CSDN博客 【高考】选专业时以什么为主&#xff1f;-CSDN博客 分数限制下&#xff0c;选好专业还是选好学校&#xff1f;-CSDN博客 分数限制下&#xff0c;选好专业还是选好学校&#xff1f;-CSDN博客 分数限制下&#xff0c;选好专…

低代码开发助力中小企业数字化转型难度持续降低

随着数字化转型的趋势不断加强&#xff0c;越来越多的中小企业开始意识到实现数字化升级是提升企业竞争力、适应市场变化的重要手段。然而&#xff0c;受制于资金、技术等方面的限制&#xff0c;这些企业在转型过程中面临着不少挑战。如何有效克服这些困难&#xff0c;找到一条…

算法题 — 接雨水

给定 n 给非负整数&#xff0c;表示每个宽度为 1 的柱子的高度图&#xff0c;计算按照此排列的柱子&#xff0c;下雨之后能能接到多少雨水。 输入&#xff1a;height [0, 1, 0, 2, 1, 0, 1, 3, 2, 1, 2, 1] 输出&#xff1a;6 解释&#xff1a;上面是由数组 [0, 1, 0, 2, 1,…

布尔运算00

题目链接 布尔运算 题目描述 注意点 运算符的数量不超过 19 个布尔表达式由 0 (false)、1 (true)、& (AND)、 | (OR) 和 ^ (XOR) 符号组成算出有几种可使该表达式得出 result 值的括号方法 解答思路 可以使用动态规划根据左右两侧区间不同结果相应组合数量计算得出当前…