Hao_RanYang 2019-11-07 10:35 采纳率: 0%
浏览 192

Java读写MySQL备份生成的文件返回给页面下载,页面下载到的是空文件,而MySQL备份的不是空文件

//数据备份
    @ResponseBody
    @GetMapping("/backups")
    @RequiresPermissions("system:data:backups")
    public void list(HttpServletResponse response) {
        //备份文件
        String filePath="C:\\beifen";//备份文件的路径
        String dbName="log_system233"+(new Date().getTime());//备份文件的名称
        try {
            Process process = Runtime.getRuntime().exec(
                    "cmd /c mysqldump -u root -proot " + "log_system233" + " > "
                            + filePath + "/" + dbName
                            + ".sql");
            //备份的数据库名字为log_system,数据库连接和密码均为root

        } catch (Exception e) {
            e.printStackTrace();
        }

        //下载备份的文件
        String filename = "C:\\beifen/";
        String filenameZip = filename + dbName + ".sql";//获取文件的路径
        try {
            response.setContentType("application/x-execl");
            response.setHeader("Content-Disposition",
                    "attachment;filename=" + new String((dbName+".sql").getBytes(), "UTF-8"));

            // 读取文件
            InputStream in = new FileInputStream(filenameZip);
            ServletOutputStream outputStream = response.getOutputStream();
            // 写文件
            int b;
            while ((b = in.read()) != -1) {
                outputStream.write(b);
            }
            in.close();
            outputStream.close();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();

        }
        //结束
    }

这是页面下载的文件
图片说明

如果在程序程加上断点,那么页面下载的就不是空文件了;但不加断点的话,页面下载的就是空文件

  • 写回答

1条回答 默认 最新

  • 小_破孩 2019-11-07 17:35
    关注

    你是通过命令进行备份的 你的数据库还在备份 所以你获取到的可能就是一个空文件 你加上断点后数据库命令执行完了相当与你等待了 数据备份命令执行完了所以获取就不是空文件

    评论

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站