字符串转输出流下载代码
@GetMapping("/rollback/content/download") public void downloadRollbackContent(@RequestParam("sqlId") Integer sqlId, @RequestParam("taskId") Integer taskId, HttpServletResponse response){ // 注意这里一定要用StringBuilder包装一下String,不然下载不下来,不知为何 StringBuilder sb = new StringBuilder("sssssssss"); InputStream is = null; String fileName = System.currentTimeMillis() + "" + taskId + "" + sqlId + ".sql"; //使用流的形式下载文件 try { //加载文件 is = new BufferedInputStream(new ByteArrayInputStream(sb.toString().getBytes("utf-8")));; response.addHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes("UTF-8"), "ISO-8859-1")); response.addHeader("Content-Length", "" +sb.toString().length()); response.setContentType("application/octet-stream"); response.setContentLengthLong(sb.toString().length()); BufferedOutputStream outStream = new BufferedOutputStream(response.getOutputStream()); byte[] buffer = new byte[1024]; int bytesRead = 0; while ((bytesRead = is.read(buffer)) != -1) { outStream.write(buffer, 0, bytesRead); } outStream.flush(); } catch (Exception e) { log.error("获取附件失败", e); throw new BusinessException(e.getMessage()); }finally { try { if (null != is) { is.close(); } } catch (IOException ioEx) { log.error("", ioEx); } } }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步