我记录

文件上传+缩略图

掷鸡蛋者 发布于 2015/9/20 21:19 浏览: 402 回复: 0 所在分类:java

一、pom.xml 引用

        <!--文件上传-->

        <dependency>

            <groupId>commons-fileupload</groupId>

            <artifactId>commons-fileupload</artifactId>

            <version>1.3</version>

        </dependency>


        <!--验证码-->

        <dependency>

            <groupId>com.github.axet</groupId>

            <artifactId>kaptcha</artifactId>

            <version>0.0.9</version>

        </dependency>

二、配置

1)在spring配置文件中(名为 ***-servlet.xml) 添加两部分:

   <!--上传-->

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

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

    </bean>


    <!--允许处理静态资源-->

    <mvc:default-servlet-handler />


三、表单页面

<form action="fileUpload.html" method="post" enctype="multipart/form-data">
选择文件:<input type="file" name="file">
<input type="submit" value="提交"> 
</form>


四、控制器


    @RequestMapping(value = "/fileForm")

    public String fileForm(){

        return "/test/fileForm";

    }


    @RequestMapping(value = "/saveUpload", method = RequestMethod.POST)

    public ModelAndView saveUpload(HttpServletRequest request, HttpServletResponse response) throws IOException {


        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;


        MultipartFile myFile = multipartRequest.getFile("myFile");


        // 文件保存

        // 1) 上传路径

        String uploadPath = "upload";


        // 2) 检测绝对路径是否存在,否则创建

        String absDirPath = request.getSession().getServletContext().getRealPath("/") + uploadPath + "/";

        File dir = new File(absDirPath);

        if (dir.exists() == false) {

            dir.mkdir();

        }


        // 3) 存储文件

        String filePath = absDirPath + myFile.getOriginalFilename();

        myFile.transferTo(new File(filePath));


        // 缩略图

        Thumbnails.of(filePath)

                .size(150, 120)

                .toFile(filePath + "_s.jpg");


        // 返回相对网址

        ModelAndView x = new ModelAndView("test/saveUpload");

        String fileName = request.getContextPath() + "/" + uploadPath + "/" + myFile.getOriginalFilename();

        x.addObject("msg", fileName);

        return x;

    }


五、上传路径

上传在当前项目的 out/artifacts 目录下


掷鸡蛋者2015/9/20 21:19

留下脚印

踩一脚
copyright © 用微博记录这个时代 2010-2014
Powered by 我记录2.0
Processed in 0 seconds, 0 queries