fileupload上传与下载

在添加用户表单中添加文件输入框

				<div>

                    <label for="a_idPicPath">证件照:</label>

                    <input type="file" name="a_idPicPath" id="a_idPicPath">

                    <font class="red"></font>

                </div>

在form标签中添加enctype属性

<form id="userForm" name="userForm" method="post" enctype="multipart/form-data"

              action="${pageContext.request.contextPath }/sys/user/useraddsave.html">

1.导入jar包

在这里插入图片描述

在springmvc-serlvet配置文件中进行配置,使jar包生效

<!-- 配置MultipartResolver,用于上传文件,使用spring的CommonsMultipartResolver -->

	<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

		<property name="maxUploadSize" value="5000000"/>

		<property name="defaultEncoding" value="utf-8"/>

	</bean>

检查数据库中的表和实体类中的字段是否存在

fileupload上传与下载_第1张图片
fileupload上传与下载_第2张图片

在control中写处理请求的方法

 if(!attach.isEmpty()){

        //创建一个File对象

        String originalPath=session.getServletContext().getRealPath("statics"+File.separator+"uploadFiles");

        //文件名  文件名称+后缀 比如 旧的文件名  dog.png  新文件名:  前缀不要重复  后缀要同旧文件的后缀

            String newFileName=null;

            String oldFileName=attach.getOriginalFilename();

            String suffix = FilenameUtils.getExtension(oldFileName);

            if(suffix.equalsIgnoreCase("png") ||

            suffix.equalsIgnoreCase("jsp") ||

            suffix.equalsIgnoreCase("gif")){

                System.out.println("该文件是一个图片格式");

                long prefix=System.currentTimeMillis()+ RandomUtils.nextLong();//22234343434233433_idPic.png

                newFileName=prefix+"_idPic."+suffix;

                File targetFile=new File(originalPath,newFileName);



                //创建该对象的目录和空文件

                if(!targetFile.exists()){

                    targetFile.mkdirs();

                }

                //将attach中的数据信息,转移到该文件对象中

                try {

                    attach.transferTo(targetFile);

                } catch (IOException e) {

                    e.printStackTrace();

                }





            }else {

                System.out.println("该文件不是图片,不符合要求");

            }





        //将目标文件的路径保存到数据库中  a/b/d   photo.png  File.separator等价 /

        String targetPath=originalPath+File.separator+newFileName;

        user.setIdPicPath(targetPath);

        }else {

            System.out.println("该对象MultipartFile 为空");

        }



        int count=this.userService.addUser(user);

        if(count>0){//添加成功

            return "redirect:/sys/user/userlist.html";

        }else{

            return "user/useradd";//逻辑视图名

        }

在mapper映射文件中,添加字段 idPicPath

 <!--添加用户-->

    <insert id="addUser" parameterType="User">

        insert into smbms_user(idPicPath)

        values(#{idPicPath})

    </insert>

测试添加功能,检查数据中是否有路径和本地是否有真实图片

你可能感兴趣的:(fileupload上传与下载)