当前位置: 首页 > news >正文

凡科做的网站行不行长沙网红打卡地

凡科做的网站行不行,长沙网红打卡地,钦州的网站建设,顺徳网站建设公司有哪些文章目录 关于Springboot 文件上传下载问题解决方案注意事项文件上传文件下载文件删除文件在线打开在写练习的时候,发现了一些小小的问题,已经在 上述代码中体现。① 代码路径碰到中文的时候,会有乱码,需要转换(内容中…

文章目录

  • 关于Springboot 文件上传下载问题解决方案
    • 注意事项
    • 文件上传
    • 文件下载
    • 文件删除
    • 文件在线打开
    • 在写练习的时候,发现了一些小小的问题,已经在 上述代码中体现。
      • ① 代码路径碰到中文的时候,会有乱码,需要转换(内容中已解决)
      • ② 在下载文件的时候,无需转跳问题(内容中已解决)

关于Springboot 文件上传下载问题解决方案

我觉得最好的办法就是将这些代码先写一遍出来,然后再琢磨一下是什么原理,虽然代码有些繁琐

注意事项

在这里插入图片描述

我们可以注意到,这个文件上传 的 enctype 格式必须设置成 “multipart / from-data” 哦。

文件上传

先把需求罗列出来
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

代码如下:

    @PostMapping("/addFile")public String addFile(MultipartFile file,HttpSession request) throws IOException {// 获得旧文件名称String originalName = file.getOriginalFilename();// 获取文件的后缀String ext = "." + FilenameUtils.getExtension(originalName);// 获得新文件名称String newName = new SimpleDateFormat("yyyyMMdd").format(new Date()) + UUID.randomUUID().toString().replace("-","")+ext;// 获得储存的路径String path = ResourceUtils.getURL("classpath:").getPath()+"static/test/";String path1 = URLDecoder.decode(path, "utf-8");// 获取新的文件夹,要是不存在,就默认创建java.io.File files = new java.io.File(path1 + newName);if(!files.exists()) {boolean b = files.mkdirs();};// 获取文件的大小String size = file.getSize() + "kb";// 上传文件file.transferTo(files);File f = new File();f.setId(UUID.randomUUID().toString());f.setOldName(originalName);f.setNewName(newName);f.setExt(ext);f.setPath(path1);f.setSize(size);String houZhui = FilenameUtils.getExtension(originalName);if(houZhui.equals("png") || houZhui.equals("img") || houZhui.equals("jpg")){f.setStyle("是");}else{f.setStyle("否");}f.setImg(path1+newName);f.setDownCounts("0");f.setDownTime(new SimpleDateFormat("yyMMddHHmmss").format(new Date()));com.xiao.entity.User user = (com.xiao.entity.User) request.getAttribute("user");f.setUid(user.getId());filempl.addFiles(f);return "redirect:/selectFiles";}

文件下载

在这里插入图片描述

代码如下:

    @GetMapping("/download")public void downloadFile(@Param("id")String id , HttpServletResponse response) throws IOException {File file = filempl.queryFile(id);// 获取要下载文件的 urlString paths = ResourceUtils.getURL("classpath:").getPath()+"/static/test";//获取文件输入流FileInputStream is = new FileInputStream(new java.io.File(paths,file.getNewName()));// 附件下载response.setHeader("content-disposition","attachment;fileName="+ URLEncoder.encode(file.getOldName(),"utf8"));// 获取输出响应流ServletOutputStream os = response.getOutputStream();IOUtils.copy(is,os);// 关闭流IOUtils.closeQuietly(is);IOUtils.closeQuietly(os);//        问题二:不需要返回,因为是下载,不存在页面转跳问题
//        return "forward:/selectFiles";

文件删除

在这里插入图片描述

代码如下:

    @GetMapping("/delFile")public String delFile(@Param("id")String id) throws IOException {// 根据id查找到当前的User对象File file = filempl.queryFile(id);String id1 =file.getNewName();// 如果文件存在,则删除文件boolean del = Files.deleteIfExists(Paths.get("D:\\javaPorject\\thirdTest\\target\\classes\\static\\test\\"+id1));// mapper 删除文件filempl.delFiles(id);return "forward:/selectFiles";}

文件在线打开

在这里插入图片描述

仅仅多了一个 “ inline; ”,就变成了在线打开。

在写练习的时候,发现了一些小小的问题,已经在 上述代码中体现。

① 代码路径碰到中文的时候,会有乱码,需要转换(内容中已解决)

② 在下载文件的时候,无需转跳问题(内容中已解决)

http://www.dt0577.cn/news/39595.html

相关文章:

  • 梅州企业网站百度手游排行榜
  • 做二手车网站怎么做的周口seo
  • 溧阳网站优化百度快速收录工具
  • 网站做直播吗网络整合营销理论
  • 网站广告如何做怎样推广app别人才愿意下载
  • 厦门网站建设系统湖南网站排名
  • 龙华做网站yihe kj辽宁好的百度seo公司
  • 做网站劫持多少钱搜索引擎优化排名
  • 个人网用wordpress吗seodao cn
  • 售房网站模板全球最大的磁力搜索引擎
  • 常用网站名称大全域名查询网站
  • 手机网站建设怎样上海seo优化公司kinglink
  • 计算机网站开发就业形势品牌策划与推广方案
  • 在日本做游戏视频网站sem培训班
  • 阳江做网站的公司信息检索关键词提取方法
  • 营销网站规划的要点包括( )知名网站
  • 临淄哪里做网站软文大全500篇
  • 广州市公司网站建设品牌重庆搜索引擎seo
  • 网站服务器建立软文素材库
  • 百家号如何给网站做推广北京seo诊断
  • 17zwd一起做网站广州常见的网络营销方法有哪些
  • 建行的官方网站网站规划与设计
  • 策划方案免费网站aso推广公司
  • smarty做网站百度竞价广告推广
  • qwins是哪个网站做的营销型网站开发公司
  • 网站做伪静态seo做得比较好的公司
  • 网站建设免费的seo岗位培训
  • 剑网三奇遇查询网站怎么做百度指数有什么参考意义
  • 图片新闻网站源码北京建设网站公司
  • 泉州app网站开发2024年新闻摘抄十条