zoukankan      html  css  js  c++  java
  • springMVC 上传下载文件

    <body>
    	<br />
    	<br />
    	
    	<form action="${pageContext.request.contextPath}/user/upload" method="post" enctype="multipart/form-data">
    		<input type="file" name="file" /> <input type="submit" value=" 上 传 " />
    	</form>
    
    	<br />
    	<br />
    	<br />
    	
        <a href="${pageContext.request.contextPath}/user/download?fileName=${fileUrl}">下载文件</a>
    
    </body>
    

      后台代码

    /**
     * 
     * @author
     */
    @Controller
    @RequestMapping("/user")
    public class UserController extends BaseController {
    
        @Autowired
        private UserService userService;
    
        /**
         * 跳转用户文件上传页面
         * 
         * @return
         */
        @RequestMapping(value = "/uploadPage")
        public String uploadPage() {
            return "/admin/newFile";
        }
        //上传文件
        @RequestMapping(value = "/upload")
        public String upload(@RequestParam(value = "file") MultipartFile file, HttpServletRequest request, ModelMap model) {
    
            System.out.println("开始");
            // getRealPath("/") 得到的就是你tomcat下webapps下的项目根路径
            String path = request.getSession().getServletContext().getRealPath("upload");
    
            String fileName = file.getOriginalFilename();
            // String fileName = new Date().getTime()+".jpg";
            System.out.println(path);
            File targetFile = new File(path, fileName);
            if (!targetFile.exists()) {
                targetFile.mkdirs();
            }
    
            // 保存
            try {
                file.transferTo(targetFile);
            } catch (Exception e) {
                e.printStackTrace();
            }
            model.addAttribute("fileUrl", fileName);
    
            return "/admin/newFile";
        }
        //下载文件
        @RequestMapping("/download")
        public String download(String fileName, HttpServletRequest request, HttpServletResponse response) {
            response.setCharacterEncoding("utf-8");
            response.setContentType("multipart/form-data");
            response.setHeader("Content-Disposition", "attachment;fileName=" + fileName);
            
            try {
                String path = request.getSession().getServletContext().getRealPath("upload") + File.separator;
                String temp = request.getParameter("fileName");
                
                InputStream inputStream = new FileInputStream(new File(path + fileName));
    
                OutputStream os = response.getOutputStream();
                byte[] b = new byte[2048];
                int length;
                while ((length = inputStream.read(b)) > 0) {
                    os.write(b, 0, length);
                }
    
                // 这里主要关闭。
                os.close();
    
                inputStream.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
            // 返回值要注意,要不然就出现下面这句错误!
            return null;
            
        }
    
    
    }
    

      

  • 相关阅读:
    Jobs(一)前端页面
    MySQL 聚合函数与count()函数
    计算机概论 64bit和32bit的CPU的不同
    Maven如何发布项目到一个Tomcat中
    创建一个简单的Maven工程
    Maven安装与配置
    Maven整合Spring与Solr
    solr应用
    hashCode()与equals()区别
    Callable与Future
  • 原文地址:https://www.cnblogs.com/haorun/p/6635248.html
Copyright © 2011-2022 走看看