springMVC文件上传和下载

首先加入必须的依赖

  <dependency>
      <groupId>commons-fileupload</groupId>
      <artifactId>commons-fileupload</artifactId>
      <version>1.3.3</version>
    </dependency>

jsp页面

<!--有文件提交加enctype属性,没有一定不要加-->
<form method="post" enctype="multipart/form-data" action="${pageContext.request.contextPath}/file/upload.do">
    文件:<input type="file" name="file1"><br/>
    描述:<input type="text" name="desc"><br/>
    <input type="submit" name="提交">
</form>

<a href="">下载</a>

mvc.xml文件

    <!--上传文件-->
    <mvc:annotation-driven/>

    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!--设置最大上传文件
        单位字节 1m=1024kb 1kb = 1024b -->
<property name="maxUploadSize" value="10485760"></property> </bean> <context:component-scan base-package="com.controller"/>

java代码

  @RequestMapping("upload")
    public String upload(MultipartFile file1,String desc)throws IOException {
        //transferTo方法作用:将接受的文件复制到服务器上,参数是复制后的位置
        //getOriginalFileName 方法作用:获取接收文件的源文件名
        file1.transferTo(new File("F:\\fuwuqi\\",file1.getOriginalFilename()));

        return "redirect:/success.jsp";
    }

    @RequestMapping("download")
    public void down(HttpServletResponse response) throws IOException{
        //读取下载的文件
        FileInputStream fi = new FileInputStream("F:\\fuwuqi\\2.jpg");
        //获取给浏览器响应的输出流
        //content-disposition(内容展示定位)
        //attachment(附件)
        response.setHeader("content-disposition","attachment;filename=2.jpg");
        OutputStream fos = response.getOutputStream();
        while(true){
            int b =fi.read();
            if(b==-1)break;
            fos.write(b);
        }
        fos.close();
        fi.close();
    }

 

posted @ 2020-09-06 20:50  奶牛花花  阅读(151)  评论(0编辑  收藏  举报