java 文件上传和下载

简介: java 文件上传和下载

java最基本的文件上传和下载


上传后对上传的文件进行重新命名处理,不然上传了重复的文件会覆盖之前的文件:

/**
     * 上传图片
     * @param file
     * @return
     * @throws Exception
     */
    @RequestMapping("/uploadFile")
    @ResponseBody
     public JsonResult uploadFile(@RequestParam(value = "file") MultipartFile file)throws Exception{
        String sufferName = file.getOriginalFilename();
        if (file!=null) {
            //获取文件的后缀名
            String subffix = sufferName.substring(sufferName.lastIndexOf(".") + 1, sufferName.length());
            String path = PropertiesValue.getString("path");//文件暂时存放
            File targetFile = new File(path);
            if(!targetFile.isDirectory()) targetFile.mkdirs();
            //对文件名进行处理
            String fileName = DateUtil.formatDate(DateUtil.getTime(), "yyyyMMddHHmmss")+DateUtil.randomChar(3)+ "." + subffix;
            file.transferTo(new File(path + fileName));
        }
        return JsonResult.success();
    }


文件的下载,需对文件的后缀进行基本的定义:下载即为文件复制的过程

/**
     * 下载文件
     * @param name
     * @param resp
     * @throws Exception
     */
    @RequestMapping(value = "/downFile",method = RequestMethod.GET)
    public void downFile(String name, HttpServletResponse resp)throws Exception{
        resp.setContentType("application/force-download");//设置响应类型
        String path = "F:\\"+name;
        InputStream in = new FileInputStream(path);
        name = URLEncoder.encode(name,"UTF-8");
        resp.setHeader("Content-disposition", "attachment;  filename=\"" + name + "\"");
        resp.setContentLength(in.available());
        //开始copy
        OutputStream out = resp.getOutputStream();
        byte[] b = new byte[1024];
        int len = 0 ;
        while((len = in.read(b))!=-1){
            out.write(b,0,len);
        }
        out.flush();
        out.close();
        in.close();
    }
目录
相关文章
|
17天前
|
存储 Java API
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
24 4
|
22天前
|
Web App开发 Java
使用java操作浏览器的工具selenium-java和webdriver下载地址
【10月更文挑战第12天】Selenium-java依赖包用于自动化Web测试,版本为3.141.59。ChromeDriver和EdgeDriver分别用于控制Chrome和Edge浏览器,需确保版本与浏览器匹配。示例代码展示了如何使用Selenium-java模拟登录CSDN,包括设置驱动路径、添加Cookies和获取页面源码。
|
1月前
|
Java
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
58 2
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
|
1月前
|
存储 前端开发 Java
Java后端如何进行文件上传和下载 —— 本地版(文末配绝对能用的源码,超详细,超好用,一看就懂,博主在线解答) 文件如何预览和下载?(超简单教程)
本文详细介绍了在Java后端进行文件上传和下载的实现方法,包括文件上传保存到本地的完整流程、文件下载的代码实现,以及如何处理文件预览、下载大小限制和运行失败的问题,并提供了完整的代码示例。
438 1
|
3月前
|
Java
Java通过HttpClient从外部url下载文件到本地
该Java程序旨在通过URL将外部网络文件(如图片)下载至本地,并解决防盗链问题。首先,它通过`HttpGet`请求获取远程文件,并通过设置`Referer`头防止防盗链。然后,根据响应内容类型确定文件后缀并保存至指定路径。测试表明,程序能够成功下载文件。
500 8
Java通过HttpClient从外部url下载文件到本地
|
2月前
|
存储 缓存 监控
Java——图片文件位于 bin 目录下,下载新图片会导致应用程序重启
【9月更文挑战第22天】在Java应用中,若图片位于bin目录下且下载新图片导致应用重启,可能是因为部署方式不当或资源监控机制过于敏感。解决方法包括:更改图片存储位置至独立目录;配置应用服务器减少资源监控敏感度;使用独立资源服务器托管静态资源;优化代码减少资源重复加载。具体方案需根据应用实际情况和技术栈调整。
|
2月前
|
JSON 前端开发 JavaScript
java中post请求调用下载文件接口浏览器未弹窗而是返回一堆json,为啥
客户端调接口需要返回另存为弹窗,下载文件,但是遇到的问题是接口调用成功且不报错,浏览器F12查看居然返回一堆json,而没有另存为弹窗; > 正确的效果应该是:接口调用成功且浏览器F12不返回任何json,而是弹窗另存为窗口,直接保存文件即可。
141 2
|
4月前
|
Java
java 文件上传 :MultipartFile 类型转换为file类型
java 文件上传 :MultipartFile 类型转换为file类型
169 9
|
3月前
|
存储 Java 开发工具
【Azure Developer】VS Code运行Java 版Azure Storage SDK操作Blob (新建Container, 上传Blob文件,下载及清理)
【Azure Developer】VS Code运行Java 版Azure Storage SDK操作Blob (新建Container, 上传Blob文件,下载及清理)
WXM
|
4月前
|
Oracle Java 关系型数据库
Java JDK下载安装及环境配置超详细图文教程
Java JDK下载安装及环境配置超详细图文教程
WXM
621 3