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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • k8s 资源管理_k8s扩容命令

    k8s 资源管理_k8s扩容命令k8s管理器介绍yaml资源管理器介绍管理器介绍在Kubernetes中,所有的内容都抽象为资源,用户需要通过操作资源来管理Kubernetes。Kubernetes的本质就是一个集群系统,用户可以在集群中部署各种服务。所谓的部署服务,其实就是在Kubernetes集群中运行一个个的容器,并将指定的程序跑在容器中。Kubernetes的最小管理单元是Pod而不是容器,所以只能将容器放在Pod中,而Kubernetes一般也不会直接管理Pod,而是通过Pod控制器来管理Pod的。Pod提供服务之后

    2022年8月11日
    3
  • url的加密解密_url地址加密

    url的加密解密_url地址加密今天做项目构造链接参数的时候,推送到app上的链接点了没办法跳转到对应的界面对比了一下能跳转的链接,原来是url没有加密,就推送过去了在这里把对url加密解密的方法记录一下,方便以后使用publicstaticStringgetURLEncoderString(Stringstr){Stringresult="";if(null==str){…

    2025年7月2日
    3
  • java面试宝典pdf,给大家安排上!

    java面试宝典pdf,给大家安排上!前言Spring无论在Java生态系统,还是在就业市场,是绝对的王者。大厂面试出镜率之高,投产规模之广,无出其右。随着技术的发展,Spring从往日的IoC框架,已发展成CloudNative基础设施,衍生出大量Spring技术栈,如大家熟知的SpringBoot、SpringCloud和SpringSecurity等。我相信很多程序员不管是在面试中,还是在日常开发中,总会面临各种挑战和考验,唯有系统性地掌握Spring编程思想、设计理念,以及具体的实现方式,方可游刃有余

    2022年7月7日
    33
  • spinner:获取选中值的三种方法

    spinner:获取选中值的三种方法

    2021年9月30日
    134
  • 多标签分类(multilabel classification )

    多标签分类(multilabel classification )这几天看了几篇相关的文章,写篇文章总结一下,就像个小综述一样,文章会很乱  1、multilabelclassification的用途     多标签分类问题很常见,比如一部电影可以同时被分为动作片和犯罪片,一则新闻可以同时属于政治和法律,还有生物学中的基因功能预测问题,场景识别问题,疾病诊断等。 2.单标签分类     在传统的单标签分类中,训练

    2025年6月25日
    2
  • 谷尼GoonieFilter网站内容敏感词过滤系统[通俗易懂]

    谷尼GoonieFilter网站内容敏感词过滤系统[通俗易懂] GoonieFilter网站内容敏感词过滤系统 GoonieFilter网站内容敏感词过滤系统是一套基于多智能主体技术的网站内容敏感词过滤系统,引入了多个主体来实现敏感信息过滤功能,通过多主体的协作,可以有效的对网站敏感信息的采集、处理和监控,以计算机智能处理技术辅助信息汇集整理和分析,最后去伪存真,实现网站敏感信息过滤。GoonieFilter敏感词过滤系统适用于网站新闻、博客…

    2022年6月4日
    30

发表回复

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

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