文件上传和下载

1.文件上传

1.1 pom.xml

<dependency>
  <groupId>commons-fileupload</groupId>
  <artifactId>commons-fileupload</artifactId>
  <version>1.3.2</version>
</dependency>
<dependency>
  <groupId>commons-io</groupId>
  <artifactId>commons-io</artifactId>
  <version>2.5</version>
</dependency>

1.2.springmvc.xml

<!--    文件上传-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="defaultEncoding" value="UTF-8"></property>
    <property name="maxUploadSize">
        <value>104857600</value>
    </property>
    <property name="maxInMemorySize">
        <value>4096</value>
    </property>
</bean>

1.3.controller层

@RequestMapping("upload")
public String uploadFile(HttpServletRequest request){
    MultipartHttpServletRequest mhs=(MultipartHttpServletRequest) request;
    MultipartFile mf=mhs.getFile("file");
    try{
        if(mf != null && mf.getSize() > 0){
            //获取项目绝对路径
            String basePath=request.getSession().getServletContext().getRealPath("/");
            File upload = new File(basePath + "/upload");
            if(!upload.exists()){
                //文件夹不存在
                upload.mkdir();
            }
            //设置文件名称(系统当前时间毫秒数命名文件)
            String fileName=System.currentTimeMillis() +
                    mf.getOriginalFilename().substring(mf.getOriginalFilename().lastIndexOf("."));
            //文件拷贝
            mf.transferTo(new File(upload,fileName));
            request.setAttribute("msg","success upload");
        }
    }catch (Exception e){
        e.printStackTrace();
        request.setAttribute("msg","failure upload");
    }

    return "result";
}
public void file(MultipartFile file, HttpServletRequest request, HttpServletResponse response) throws  Exception{
    String fileName = file.getOriginalFilename();
    File desFile = new File(request.getServletContext().getRealPath("/"),fileName);
    file.transferTo(desFile);
    response.getWriter().print(desFile.getAbsolutePath());
}

1.4.file.jsp

<form action="fileUp" method="post" enctype="multipart/form-data">
    <input type="file" name="file"> <br>
    <button type="submit"> submit </button>
</form>

2.文件下载

2.1 cobtroller

@RequestMapping("/fileDown")
public void file(HttpServletRequest request, HttpServletResponse response) throws Exception{
//        String fileName = request.getParameter("fileName");
    File file = new File(request.getServletContext().getRealPath("/"), "lwx.docx");
    byte[] data = FileUtils.readFileToByteArray(file);
    response.setContentType("application/x-msdownload;");
    response.setHeader("Content-disposition", "attachment;filename="
            + new String(file.getName().getBytes(StandardCharsets.UTF_8), "ISO8859-1"));
    response.setHeader("Content-Length", String.valueOf(file.length()));
    response.getOutputStream().write(data);
}
posted @   lwx_R  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示