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

Vue上传文件遇到的问题[通俗易懂]问题之前项目中前端使用了vue-cli,引入了上传组件,所以在上传文件时很容易,没有考虑太多问题。image-cropper组件中有url属性,直接使用:url=”文件服务器地址”绑定上传的地址即可。<el-form-itemlabel=”讲师头像”><!–头衔缩略图–><pan-thumb:image=”teacher.avatar”/><!–文件上传按钮–><el-buttontype=

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

问题

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

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

<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基本页面,没有上传组件,那么文件需要自己获取。

<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>
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
                    })
            }
        }
    })
@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.net/184073.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 程序员的生存法则_程序员的一生

    程序员的生存法则_程序员的一生前几天,和国内某知名企业的行销一线喝茶聊天,他一直在抱怨自己的上司很差劲,一直允诺追加奖金,但是月底考评结果却给的很差,奖金也没别人的多,所以他想调别的部门。我很是惊诧,这公司是你们家开的?怎么可以想调就调?他笑了笑说,你不懂职场生存法则吗?    他的工作需要经常出差,全国各地跑。上次是去江西,他知道部门A的老大老家在江西,就主动去找A部门老大,告之有个出差机会,要不要一起?后来我才明白“要不

    2022年10月7日
    5
  • IDEA+Maven 打jar包[通俗易懂]

    IDEA+Maven 打jar包[通俗易懂]IDEA+Maven打jar包(包涵依赖jar)写在前面:​这两天一直在整(gu)理(dao)IDEA用Maven打jar包,网上的教程是各式各样,但是都不能满足我的需求(或者还没有找个正确的),因此综合网上的内容自己整理了一下(以下内容是在mac系统下win可能有一些地方不一样)。软件环境:​IDEA:2017.1.5​Maven:3.3.9…

    2022年5月30日
    50
  • 多态性_dna多态性的四个类型

    多态性_dna多态性的四个类型多态性的重要性:多态性是面向对象程序设计的一个强大机制:为名称相同的方法提供不同的实现方式,继承自同一基类的不同派生类可以为同名方法定义不同的功能,统一方法作用于不同类的对象,可以有不同的解释,产生

    2022年8月4日
    12
  • ods数据库是什么意思_数据仓库ods层和dw层的区别

    ods数据库是什么意思_数据仓库ods层和dw层的区别这两天看书,发现了和数据仓库相关的还有一个叫ODS的概念,它是企业级的全局数据库,用于提供集成的,企业级一致的数据,包含如何从各个子系统中向ODS抽取数据以及面向主题的角度存储数据。它和数据仓库的主要区别:数据仓库是面向主题的、集成的、随时间变化的、非易失的、用于进行战略型决策的数据集合。ODS是一个面向主题的、集成的、可变的、当前的细节数据集合,用于支持企业对于即时性的、操作性的、集成的全体信息…

    2022年9月26日
    5
  • 虚拟机上网的三种方式

    虚拟机上网的三种方式前言很多人安装虚拟机的时候,经常遇到不能上网的问题,而vmware有三种网络模式,对初学者来说也比较眼花聊乱,今天我就来基于虚拟机3种网络模式,帮大家普及下虚拟机上网的背景知识。(博文原创自http://www.cnblogs.com/ggjucheng/archive/2012/08/19/2646007.html)虚拟机网络模式无论是vmware,virtualbox

    2022年5月19日
    49
  • 免费版(个人家庭免费使用)xshell7 和 xftp7 下载

    免费版(个人家庭免费使用)xshell7 和 xftp7 下载xshell6、xftp6个人免费版:百度云下载地址:https://pan.baidu.com/s/19mTPpYgXo65u9SCI1IINPQ密码:9wr0安装完毕,启动时会有弹出框,关闭即可缺点:一个xshell中shell窗口个数最多四个,有限制,可以下载下面xmanager5套件,使用不受限制xmanager5[包含xshell,xftp5]:xman…

    2022年10月12日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号