如何下载MySQL';使用servlet和AJAX的BLOB?

如何下载MySQL';使用servlet和AJAX的BLOB?,mysql,ajax,servlets,blob,Mysql,Ajax,Servlets,Blob,我正在使用servlet访问MySQL数据。我已经有了将文件从servlet发送到响应的代码 我不知道我是如何用javascript捕获它的,因为我不是通过提交来调用它的。我不想重新加载洞页面 我尝试创建一个窗口。打开servlet,通过URL发送所有参数,但它只打开一个空白页。好的,要下载文件,我只需查询blob文件,然后: try{ ServletOutputStream output = response.getOutputStream(); stmt = (Stateme

我正在使用servlet访问MySQL数据。我已经有了将文件从servlet发送到响应的代码

我不知道我是如何用javascript捕获它的,因为我不是通过提交来调用它的。我不想重新加载洞页面


我尝试创建一个窗口。打开servlet,通过URL发送所有参数,但它只打开一个空白页。

好的,要下载文件,我只需查询blob文件,然后:

try{
    ServletOutputStream output = response.getOutputStream();
    stmt = (Statement) c.createStatement();
  rs = stmt.executeQuery(query);
  if (rs.next()) {
    fl = (Blob) rs.getBlob(1);
  } else {
      System.out.println("No se pudo descargar el archivo");
  }

  InputStream in = fl.getBinaryStream();
  int length = (int) fl.length();

    response.reset();
    //response.setContentType("multipart/mixed");
    //if(rs.getString(3).toLowerCase().equals("mp3") || rs.getString(3).toLowerCase().equals("mpeg"))
        response.setContentType(getMime(rs.getString(2)));
    response.setHeader("Content-Length: ",Integer.toString(length));
    response.setHeader("Content-disposition","attachment; filename=" + rs.getString(2));

    byte[] buf = new byte[1024];

while ((length = in.read(buf)) > 0){
    output.write(buf, 0, length);
}
    output.close();
    in.close();
    rs.close();
        }catch(Exception e){
            e.printStackTrace();
        }

好的,要下载该文件,我只需查询blob文件,然后:

try{
    ServletOutputStream output = response.getOutputStream();
    stmt = (Statement) c.createStatement();
  rs = stmt.executeQuery(query);
  if (rs.next()) {
    fl = (Blob) rs.getBlob(1);
  } else {
      System.out.println("No se pudo descargar el archivo");
  }

  InputStream in = fl.getBinaryStream();
  int length = (int) fl.length();

    response.reset();
    //response.setContentType("multipart/mixed");
    //if(rs.getString(3).toLowerCase().equals("mp3") || rs.getString(3).toLowerCase().equals("mpeg"))
        response.setContentType(getMime(rs.getString(2)));
    response.setHeader("Content-Length: ",Integer.toString(length));
    response.setHeader("Content-disposition","attachment; filename=" + rs.getString(2));

    byte[] buf = new byte[1024];

while ((length = in.read(buf)) > 0){
    output.write(buf, 0, length);
}
    output.close();
    in.close();
    rs.close();
        }catch(Exception e){
            e.printStackTrace();
        }

你能发布你的javascript代码让我看到你的错误在哪里吗?你能发布你的javascript代码让我看到你的错误在哪里吗?