java网页下载功能怎么获取文件名

      Java是一门面标的目的对象编程说话,不仅接收了C++说话的各类长处,还摒弃了C++里难以理解的多担当、指针等概念,是以Java说话具有功能壮大和简单易用两个特征。Java说话作为静态面标的目的对象编程说话的代表,极好地实现了面标的目的对象理论,许可程序员以优雅的思维体例进行复杂的编程  。

      Java具有简单性、面标的目的对象、分布式、健壮性、平安性、平台自力与可移植性、多线程、动态性等特点  。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等  。

工具/原料

  • 电脑
  • intellij IDEA或者eclipse

方式/步骤

  1. 1

    第一步:思绪。

    1、首先我们要理解上传文件的步调,上传文件时为例避免文件重名,一般城市生当作一个UUID或者时候戳作为文件名,然后将文件真实的名字和存储的名字放在数据库表中的一笔记录中。

    2、下载和在前台展示的到时辰查询数据库的记实。

    2.1:展示前台的是原始名称

    2.2:下载时按照UUID名字进行查找。

    3、借助于springMVC实现下载上传。

  2. 2

    第二步:下载代码实现。

    代码本家儿要本家儿要包罗

    1、前台页面跳转,并查询数据库原始文件名展示

    2、下载,按照数据库id查询文件存放路径下载

    @Controller@RequestMapping("/downloadImg")public class DownloadController {    @RequestMapping("toIndex")    public ModelAndView toIndex(HttpServletRequest request, HttpServletResponse response){        //想数据库请求查询获得原始文件名展示        ModelAndView mv = new ModelAndView("index");        mv.addObject("name","火影");        return mv;    }    @ResponseBody    @RequestMapping("/download")    public void testUrl(HttpServletRequest request) throws UnsupportedEncodingException {        //获取请求的url        StringBuffer url = request.getRequestURL();        //获取url后面的参数        String urlParame =  request.getQueryString();;        System.out.println("url:"+ url);        System.out.println("urlParame:"+ urlParame);        //按照参数名称获取参数        String name = request.getParameter("name");        System.out.println("name:"+ new String(name.getBytes("ISO-8859-1"),"utf-8"));    }    public ResponseEntity<byte[]> download(HttpServletRequest request) throws IOException {        //读取文件        File file = new File("D:/img/火影2.jpg");        byte[] body = null;        InputStream is = new FileInputStream(file);        body = new byte[is.available()];        is.read(body);        HttpHeaders headers = new HttpHeaders();        //设置文件头        headers.add("Content-Disposition", "attchement;filename=" + new String( "火影2.jpg".getBytes("gb2312"), "ISO8859-1" ));        HttpStatus statusCode = HttpStatus.OK;        ResponseEntity<byte[]> entity = new ResponseEntity<byte[]>(body, headers, statusCode);        return entity;    }}

  3. 3

    第三步:测试。

    1、打开跳转页面。

    2、下载请求,如下所示下载当作功

  • 发表于 2019-03-26 20:01
  • 阅读 ( 218 )
  • 分类:其他类型

相关问题

0 条评论

请先 登录 后评论