博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springMVC 上传下载文件
阅读量:5222 次
发布时间:2019-06-14

本文共 2273 字,大约阅读时间需要 7 分钟。

  后台代码

/** *  * @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;            }}

  

转载于:https://www.cnblogs.com/haorun/p/6635248.html

你可能感兴趣的文章
WPF移动Window窗体(鼠标点击左键移动窗体自定义行为)
查看>>
软件测试-----Graph Coverage作业
查看>>
django ORM创建数据库方法
查看>>
创建Oracle synonym 详解
查看>>
php7 新特性整理
查看>>
RabbitMQ、Redis、Memcache、SQLAlchemy
查看>>
linux查看端口占用
查看>>
hdu - 1226 超级密码 (bfs)
查看>>
Sql常见面试题 受用了
查看>>
知识不是来炫耀的,而是来分享的-----现在的人们却…似乎开始变味了…
查看>>
CSS背景颜色、背景图片、平铺、定位、固定
查看>>
口胡:[HNOI2011]数学作业
查看>>
我的第一个python web开发框架(29)——定制ORM(五)
查看>>
中国剩余定理
查看>>
基础笔记一
查看>>
uva 10137 The trip
查看>>
Count Numbers
查看>>
编写高质量代码改善C#程序的157个建议——建议110:用类来代替enum
查看>>
网卡bond技术
查看>>
UITabbarController的UITabbarItem(例:"我的")点击时,判断是否登录
查看>>