zoukankan      html  css  js  c++  java
  • Spring的文件上传功能upload

    用全部Annotation配置方式来传文件, 首先也是修改配置类:

    @Override
        public void addViewControllers(ViewControllerRegistry registry) {
            registry.addViewController("/index").setViewName("/index");
            registry.addViewController("/hello").setViewName("/index");
            registry.addViewController("/fileupload").setViewName("/upload");
    //增加一个fileupload的重定向, 指向一个upload.jsp文件, 里面就是两个input, 具体下面贴 } @Bean
    //这个Multipart接应者(这翻译也是没sei了), 仅仅设置了一下最大文件尺寸, 如果超过这个尺寸就会报错,
    //具体的报错还能修改Exception的那个interceptor来定义跟传msg, 重定向, 试过, 挺好用
    public MultipartResolver multipartResolver() { CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(); multipartResolver.setMaxUploadSize(1000000); return multipartResolver; }

    上传测试用的jsp文件简单贴一下:

    ... ...
        <div class="upload">
            <form action="upload" enctype="multipart/form-data" method="post">
                <input type="file" name="file" /><br> <input type="submit" value="上传" /><br>
            </form>
        </div>
    ... ...

    然后你不是点了上面的submit么, 执行的action是"upload", 这肯定是对应一个controller的, 下面就是:

    @Controller
    public class UploadController {
        @RequestMapping(value = "upload", method = RequestMethod.POST)
        @ResponseBody
        public String upload(MultipartFile file) {
            try {
                FileUtils.writeByteArrayToFile(new File("c:/upload/" + file.getOriginalFilename()), file.getBytes());
                return "ok";
    
            } catch (IOException e) {
                e.printStackTrace();
                return "wrong";
            }
        }
    }

    Linux的精(bian)英(tai)们, 修改一下这里的目录名即可.

    就修改配置, 然后做一个controller, 测试建一个jsp, 就搞定了, 简单地要死吧.

    哦对了, pom里面加上common-io的包:

            <!-- 文件上传 -->
            <dependency>
                <groupId>commons-fileupload</groupId>
                <artifactId>commons-fileupload</artifactId>
                <version>1.3.1</version>
            </dependency>
    
            <!-- 可简化I/O操作 -->
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>2.3</version>
            </dependency>
            

    注明出处, 全部内容来自"Spring Boot实战"一书, 我已经购买了kindle的正版(这是个坏习惯, 因为csdn全他妈有, 从源代码到原书pdf, 连淘宝都省了), 才不到10块钱, 推荐大家都买正版, 打击盗版...毕竟人家写书是费了时间的, 如果没人为之付费, 谁他妈还做知识传播?谁以后还敢写书, 对吧?

  • 相关阅读:
    WIN10系统下静态编译Qt4.8.7
    python-使用python获取一段录音
    【探索之路】机器人篇(5)-Gazebo物理仿真环境搭建_让机器人运动起来
    【探索之路】机器人篇(4)-根据3D文件来优化自己的机器人模型
    【探索之路】机器人篇(3)-给mwRobot建立模型
    【探索之路】机器人篇(2)-ROS系统并创建工作空间和项目
    【探索之路】机器人篇(1)-ROS-mwRobot开篇
    【kinetic】操作系统探索总结(八)键盘控制
    webstorage
    mysqld: [ERROR] Found option without preceding group in config file D:TONGmysql-5.7.19-winx64my.ini at line 1!
  • 原文地址:https://www.cnblogs.com/Montauk/p/9835942.html
Copyright © 2011-2022 走看看