Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Vue上传文件遇到的问题[通俗易懂]

Vue上传文件遇到的问题[通俗易懂]

作者头像
全栈程序员站长
发布于 2022-11-10 08:38:31
发布于 2022-11-10 08:38:31
75510
代码可运行
举报
运行总次数:0
代码可运行

问题

之前项目中前端使用了vue-cli,引入了上传组件,所以在上传文件时很容易,没有考虑太多问题。

image-cropper组件中 有url属性,直接使用:url=”文件服务器地址”绑定上传的地址即可。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<el-form-item label="讲师头像">
<!-- 头衔缩略图 -->
<pan-thumb :image="teacher.avatar"/>
<!-- 文件上传按钮 -->
<el-button type="primary" icon="el-icon-upload" @click="imagecropperShow=true">更换头像
</el-button>
<!-- v-show:是否显示上传组件 :key:类似于id,如果一个页面多个图片上传控件,可以做区分 :url:后台上传的url地址 @close:关闭上传组件 @crop-upload-success:上传成功后的回调 <input type="file" name="file"/> -->
<image-cropper v-show="imagecropperShow" :width="300" :height="300" :key="imagecropperKey" :url="BASE_API+'/eduoss/fileoss'" field="file" @close="close" @crop-upload-success="cropSuccess"/>
</el-form-item>

解决

本次是用的是html基本页面,没有上传组件,那么文件需要自己获取。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<form autocomplete="off">
<!--省略其他输入域……-->
<div class="form-group">
<input class="form-control" type="file" name="fileupload" @change="upLoadPicture($event)" v-model="member.avatar" accept="image/*">
<i class="icon_images"></i>
</div>
<!--省略其他输入域……-->
<div id="pass-info" class="clearfix"></div>
<a href="#0" class="btn_1 gradient full-width">立即注册!</a>
</form>
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let vm = new Vue({ 

el: "#app",
data() { 

return { 

member: { 

mobile: "",
password: "",
nickname: "",
avatar: "",
code: "",
}
}
},
methods: { 

upLoadPicture(e) { 

//获取文件
let file = e.target.files[0]
//将文件放入表单文件
let formData = new FormData();
formData.append('file', file);
//上传文件
axios.post("http://localhost:8004/oss/fileoss", formData)
.then(response => { 

alert("头像上传成功!")
//将返回的图片url赋值给member
vm.member.avatar=response.data.data.url
})
}
}
})
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@PostMapping
public R uploadOssFile(MultipartFile file){ 

//获取文件
//返回上传文件路径
String url=ossService.uploadFileAvatar(file);
return R.ok().data("url",url);
}

FormData对象的详解,https://www.jianshu.com/p/e984c3619019

主要两步:

  • 使用@change和e.target.files[0],获取我们添加的文件,
  • new FormData();并且 formData.append(‘file’, file); 需要将文件条件到FormData()表单对象中,否则后端的MultipartFile 类型获取不到file对象,就会报出java.lang.NullPointerException。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/184073.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月9日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
1 条评论
热度
最新
摒弃SD卡存放数据的方案确实符合sandbox的设计理念,但如果这样的话, 应用的data数据会变得特别的大,data过大,是否会带来一些弊端?
摒弃SD卡存放数据的方案确实符合sandbox的设计理念,但如果这样的话, 应用的data数据会变得特别的大,data过大,是否会带来一些弊端?
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
VFS 和容器的实际应用
VFS(Virtual File System)和容器(Containers)是两种在现代计算中非常重要的技术,它们在不同的场景和应用中发挥着关键作用。以下是VFS和容器的一些实际应用:
用户11163528
2024/12/11
1340
文件服务设计
作为项目的基础模块为各个项目提供统一的文件操作能力,文件服务提供给基础模块调用,基础模块再将其封装对外开放接口。
jerrypxiao
2019/07/02
2.6K0
文件服务设计
[033]存储对手机性能的影响
几年以前,我被派去厦门上门去分析一个用户的手机卡顿问题,该用户的手机经常莫名无响应,刷机,恢复出厂都没有用,经过一通分析,原来该用户从熟人店里买到了一张盗版的SD卡(这年头坑的就是朋友),该SD卡读写速度很慢,顺序读写只有20MB/s。那为什么SD卡的读写性能对手机性能影响那么大?当时我的知识水平,只能从对比测试中发现这个问题,然后更换SD卡解决了这个问题,但是无法从原理上解释这种现象。经过那么多年的学习积累,我现在终于可以解释这个问题。
王小二
2020/06/08
2.2K0
[033]存储对手机性能的影响
ucoreOS_lab8 实验报告
lab8 会依赖 lab1~lab7 ,我们需要把做的 lab1~lab7 的代码填到 lab8 中缺失的位置上面。练习 0 就是一个工具的利用。这里我使用的是 Linux 下的系统已预装好的 Meld Diff Viewer 工具。和 lab6 操作流程一样,我们只需要将已经完成的 lab1~lab7 与待完成的 lab7 (由于 lab8 是基于 lab1~lab7 基础上完成的,所以这里只需要导入 lab7 )分别导入进来,然后点击 compare 就行了。
Angel_Kitty
2019/08/05
9490
ucoreOS_lab8 实验报告
不知道Linux文件系统是怎么工作的?详解来了
文件系统,本身是对存储设备上的文件,进行组织管理的机制。组织方式不同,就会形成不同的文件系统。
用户8639654
2021/08/27
1.4K0
什么是 Eclipse virtualFS
为了理解 virtualFS,我们先需要了解 Eclipse 是什么。Eclipse 是一个广泛使用的集成开发环境(Integrated Development Environment, 简称 IDE),其主要用于 Java 开发,但也支持多种其他编程语言。Eclipse 作为一个开放源代码的平台,支持插件架构,可以进行高度的自定义。因此,Eclipse 适用于各类开发需求,从应用软件到嵌入式系统,无所不包。
编程小妖女
2024/12/27
490
什么是 Eclipse virtualFS
VFS- 内核是如何抽象文件系统的
UNIX 的哲学之一就是一切皆文件,所以可以看出文件系统在操作系统层面是非常重要的,很多基本单元都是通过文件系统展开的,所以了解文件系统有利于分析整个操作系统的脉络。
Linux阅码场
2019/06/04
1.8K0
VFS- 内核是如何抽象文件系统的
Linux IO的奥秘:深入探索数据流动的魔法
Linux I/O(输入/输出)系统是其核心功能之一,负责处理数据在系统内部及与外界之间的流动。为了优化这一流程,Linux进行了一系列努力和抽象化,以提高效率、灵活性和易用性。🚀
GousterCloud
2024/04/07
970
文件系统专栏 | 之文件系统架构
文件系统层次分析 由上而下主要分为用户层、VFS层、文件系统层、缓存层、块设备层、磁盘驱动层、磁盘物理层 用户层:最上面用户层就是我们日常使用的各种程序,需要的接口主要是文件的创建、删除、打开、关闭、写、读等。 VFS层:我们知道Linux分为用户态和内核态,用户态请求硬件资源需要调用System Call通过内核态去实现。用户的这些文件相关操作都有对应的System Call函数接口,接口调用 VFS对应的函数。 文件系统层:不同的文件系统实现了VFS的这些函数,通过指针注册到VFS里面。所以,用户的操作
刘盼
2022/08/26
2.8K0
文件系统专栏 | 之文件系统架构
通俗易懂!快速了解虚拟文件系统(VFS)
为什么 Linux 内核的文件系统类型那么多,都能挂载上呢?为什么系统里可以直接 mount 其他文件系统呢?甚至能把 windows 下的文件夹挂载到 windows 上,为什么 Linux 的虚拟文件系统这么强大?这得益于它的数据结构设计得十分精妙。好像听过,Linux 有什么解决不了的?加一层。
哆哆jarvis
2022/08/23
2.7K0
通俗易懂!快速了解虚拟文件系统(VFS)
虚拟文件系统
通常我们使用的磁盘和光盘都属于块设备,也就是说它们都是按照 数据块 来进行读写的,可以把磁盘和光盘想象成一个由数据块组成的巨大数组。但这样的读写方式对于人类来说不太友好,所以一般要在磁盘或者光盘上面挂载 文件系统 才能使用。那么什么是 文件系统 呢? 文件系统 是一种存储和组织数据的方法,它使得对其访问和查找变得容易。通过挂载文件系统后,我们可以使用如 /home/docs/test.txt 的方式来访问磁盘中的数据,而不用使用数据块编号来进行访问。
用户7686797
2020/08/25
1.7K0
浏览器的数据存储方法比较
Cookies 首次由netscape在 1994 年引入。Cookies 存储一些键值数据的小片段,主要用于会话管理、个性化跟踪。Cookies 可以设置多个安全选项,如生存时间或域名属性,以便在多个子域之间共享 Cookies。
IT小马哥
2024/12/04
2540
Linux 虚拟文件系统
Linux使用了虚拟文件系统(VFS,Virtual Filesystem,下文统称“虚拟文件系统”),它不是磁盘文件的组织格式,而是抽象出来的文件树的集合,它通过标准接口动态的向其中增加或移除对应的目录。虚拟文件系统支持以下归类的三种类型的文件系统:
研究僧
2021/01/31
1.7K0
Android 11 快来了,IO 性能下降了 SDCardFS Vs FUSE
在Android手机的早期,几乎所有设备都依赖于使用microSD卡进行存储。这是由于当时的手机出厂时内部存储容量很小。但是,至少与内部闪存可以读取/写入数据的速度相比,用于存储应用程序的SD卡通常无法提供出色的用户体验。因此,越来越多地将SD卡用于外部数据存储,
用户9732312
2022/05/13
4.2K0
Android 11 快来了,IO 性能下降了 SDCardFS Vs FUSE
好多网友都不知道怎么阅读Linux内核源码,这篇让你快速理解
Linux内核分为CPU调度、内存管理、网络和存储四大子系统,针对硬件的驱动成百上千。代码的数量更是大的惊人。
嵌入式Linux内核
2022/10/22
5.2K0
好多网友都不知道怎么阅读Linux内核源码,这篇让你快速理解
快手春节红包背后,高并发存储架构设计
2020年的春节,想必大家都印象深刻,除了新冠肺炎疫情,就是春晚各大APP的红包大战,让不少用户“薅”到了羊毛。
腾讯云开发者
2020/05/08
4.3K0
通用缓存存储方案设计
目录介绍01.整体概述说明1.1 项目背景介绍1.2 遇到问题记录1.3 基础概念介绍1.4 设计目标1.5 产生收益分析02.市面存储方案2.1 缓存存储有哪些2.2 缓存策略有哪些2.3 常见存储方案2.4 市面存储方案说明2.5 存储方案的不足03.存储方案原理3.1 Sp存储原理分析3.2 MMKV存储原理分析3.3 LruCache考量分析3.4 DiskLru原理分析3.5 DataStore分析3.6 HashMap存储分析3.7 Sqlite存储分析3.8 使用存储的注意点3.9 各种数据存
杨充
2023/03/07
1.1K0
Ext2文件系统布局,文件数据块寻址,VFS虚拟文件系统
http://blog.csdn.net/jnu_simba/article/details/11759809
bear_fish
2018/09/20
7850
Ext2文件系统布局,文件数据块寻址,VFS虚拟文件系统
linux内核编程指南_UNIX/LINUX
arch:包含和硬件体系结构相关的代码,每种平台占一个相应的目录,如i386、arm、arm64、powerpc、mips等。Linux内核目前已经支持30种左右的体系结构。在arch目录下,存放的是各个平台以及各个平台的芯片对Linux内核进程调度、内存管理、中断等的支持,以及每个具体的SoC和电路板的板级支持代码。
全栈程序员站长
2022/09/30
2.1K0
linux内核编程指南_UNIX/LINUX
FUSE,从内核到用户态文件系统的设计之路
FUSE(Filesystem in Userspace)是一个允许用户在用户态创建自定义文件系统的接口,诞生于 2001 年。FUSE 的出现大大降低了文件系统开发的门槛,使得开发者能够在不修改内核代码的情况下实现创新的文件系统功能。JuiceFS 就是基于 FUSE 构建的高性能分布式文件系统,充分发挥了 FUSE 的灵活性和扩展性。
深度学习与Python
2025/03/03
1180
FUSE,从内核到用户态文件系统的设计之路
推荐阅读
相关推荐
VFS 和容器的实际应用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验