• spring mvc 实现文件上传


    例:用户注册提交一个头像文件

    第一步,创建项目 ,导入jar包
    做文件上传除了要导入spring常规的jar包外,还要导入commons-fifileupload和commons-io这两个jar包。
    第二步,web.xml中声明spring的核心监听器 ,spring mvc的前端控制器
    第三步,创建spring和spring mvc的主配置文件
    第四步,创建包和类
        1.创建用户实体类
      2.创建控制器
    package com.aaa.springmvc.controller;
    import com.aaa.springmvc.entity.Users;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.multipart.MultipartFile;
    import java.io.File;
    import java.io.IOException;
    import java.util.UUID;
    /**
    *
    */
    @Controller
    public class UserController {
    /**
    * 用户注册的请求
    * @param user
    * @return
    */
    @RequestMapping("/register")
    public String register(Users user, MultipartFile file){
    //获取文件的真实文件名
    String trueName = file.getOriginalFilename();
    System.out.println("真实文件名:"+trueName);
    //获取文件的大小
    Long size = file.getSize();
    System.out.println("文件大小(字节):"+size);
    //需要把file文件存储到本地磁盘上
    String DIR = "D:/upload/";
    //保存的时候不能保存真实文件名,可以使用一种机制生成唯一的文件名
    //UUID类是用来获取32位的固定长度的随机字符串,每次获取到的字符串永远不会重复。
    String saveName = UUID.randomUUID().toString();
    //创建要保存的文件
    File newFile = new File(DIR+saveName);
    //把临时文件file转储到newFile上
    try {
    file.transferTo(newFile);
    } catch (IOException e) {
    e.printStackTrace();
    }
    user.setTrueName(trueName);
    user.setSaveName(saveName);
    System.out.println("用户名:"+user.getUsername());
    System.out.println("密码:"+user.getPassword());
    return "redirect:/login.jsp";
    }
    public static void main(String[] args) {
    String str = UUID.randomUUID().toString();
    System.out.println(str);
    str = UUID.randomUUID().toString();
    System.out.println(str);
    }
    }
    第五步,扫描控制器的包
    第六步,在spring mvc主配置文件中配置上传文件的解析器
    第七步,写注册界面
      注册成功之后要跳转到登录界面,创建登录界面。
     
  • 相关阅读:
    创建一个Flex工程
    WebORB手动配置要点
    热血三国地图增强版
    vs2008 sp1无法加载实体模型工具的解决办法
    Berkeley DB for .NET使用
    FluorineFx使用自定义VO(实现IExternalizable接口)
    PD生成数据表时出现“未能准备语句”
    替换AsWing的JTree组件中的图标
    参数传递
    c# 32位16位MD5加密
  • 原文地址:https://www.cnblogs.com/duguangming/p/10957248.html
Copyright © 2020-2023  润新知