jquery使用formData上传附件到ssm框架

简介: jquery使用formData上传附件到ssm框架

简介

正常使用jquery上传附件时data传到后端的数据只能是一个对象,

而图片在数据库和bean里面都是存的字符串类型,但是后端接收的是一个文件类型,

这样就上传不到后端,为了解决这个问题,我们就使用 FormData 对象来上传附件

解决方法

配置Spring文件

不配置这个就上传不了文件,一定要配置

<!--  配置multipartResolver,用于上传文件,使用spring的CommonsMultipartResolver  -->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxInMemorySize" value="5000000"></property>
        <property name="defaultEncoding" value="UTF-8"></property>
    </bean>

HTML-form表单代码

enctype="multipart/form-data"一定要添加,要不上传不了附件

要上传的地方的inputtype属性要改为file来上传文件,并且name属性要改的和bean不一样

<form action="/student/add" method="post" id="addForm" enctype="multipart/form-data">
        姓名:<input type="text" name="name"><br>
        家庭住址:<input type="text" name="bigname"><br>
        出生日期:<input type="text" name="riqi"><br>
        班级:<select name="gradeId">
                <option value="0">请选择</option>
                <option value="1">一年级</option>
                <option value="2">二年级</option>
                <option value="3">三年级</option>
            </select><br>
        年龄:<input type="text" name="age"><br>
        图片:<input type="file" id="tupianURL" name="tupianURL"><br>
        <input type="submit" value="添加">
    </form>

jquery代码

创建 FormDate 对象来把数据上传到后端,要指定一个form,会获取到form中的数据

切记ajax中 processData: falsecontentType: false 一定要记得添加,不添加的话会跳转页面

$("#addForm").submit(function (){
        var formData = new FormData(document.getElementById("addForm"));
        $.ajax({
            url:"/student/add",
            type:"post",
            data:formData,
            dataType:"json",
            processData: false,
            contentType: false,
            success:function (data){
                if (data>=1){
                    alert("添加成功");
                }else {
                    alert("添加失败");
                }
            }
        })
        return false;
    })

Controller后端代码

要确保webapp中创建的有这个路径

    @RequestMapping("/add")
    @ResponseBody
    public String add(Student student,MultipartFile tupianURL,HttpServletRequest request){
        if (tupianURL.getSize()>0) {//判断上没上传文件
            String fileType=tupianURL.getOriginalFilename();
            int index=fileType.lastIndexOf(".");
            fileType=fileType.substring(index);
            String path=request.getSession().getServletContext().getRealPath("static"+ File.separator+"uploadfiles");
            long filename=System.currentTimeMillis();//获取当前时间时间戳
            File file=new File(path+"\\"+filename+fileType);
            try {
                tupianURL.transferTo(file);
            } catch (IOException e) {
                e.printStackTrace();
            }
            student.setTupian(filename+fileType);
        }
        int count=studentService.addStudent(student);
        String result=JSON.toJSONString(count);
        return result;
    }

以上工作作完就可以使用ajax方式上传附件啦!

相关文章
|
4月前
|
Java
SSM框架整合
SSM框架整合
41 3
|
28天前
|
Java 数据库连接 Maven
手把手教你如何搭建SSM框架、图书商城系统案例
这篇文章是关于如何搭建SSM框架以及实现一个图书商城系统的详细教程,包括了项目的配置文件整合、依赖管理、项目结构和运行效果展示,并提供了GitHub源码链接。
手把手教你如何搭建SSM框架、图书商城系统案例
|
3月前
|
JSON 前端开发 Java
手把手整合SSM框架2
手把手整合SSM框架
48 0
|
3月前
|
Java 数据库连接 Maven
手把手整合SSM框架1
手把手整合SSM框架
45 0
|
29天前
|
Java 数据库连接 Spring
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
文章是关于Spring、SpringMVC、Mybatis三个后端框架的超详细入门教程,包括基础知识讲解、代码案例及SSM框架整合的实战应用,旨在帮助读者全面理解并掌握这些框架的使用。
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
|
1月前
|
Java 数据库连接 Maven
SSM框架整合图书管理项目
这篇文章是关于SSM框架整合到图书管理项目的详细教程,涵盖了从Maven项目构建、依赖导入、数据库连接、配置文件编写、实体类和接口实现到SpringMVC整合的完整步骤。
SSM框架整合图书管理项目
|
1月前
|
Java 数据库
使用ssm框架搭建的图书管理系统
本文介绍了使用SSM框架搭建的图书管理系统,包括图书信息管理、借阅记录管理、公告管理、出入库管理以及用户管理等功能。
使用ssm框架搭建的图书管理系统
|
3月前
|
SQL 前端开发 Java
基于SSM框架的教务系统
基于SSM框架的教务系统
44 2
基于SSM框架的教务系统
|
3月前
|
Java
SSM框架Controller层可以做什么
SSM框架Controller层可以做什么
|
3月前
|
存储 Java 关系型数据库
基于SSM框架的电影院售票网站
基于SSM框架的电影院售票网站
基于SSM框架的电影院售票网站