从数据库直接打开PDF到用户PDF应用程序

时间:2017-09-06 19:21:10

标签: java mysql javafx

我使用JavaFX创建了一个应用程序。我有一个PDF被上传到数据库,因为它的设计目的是在以后查看,目的是使这个可移植(数据库和托管在服务器上的文件)。

目前,我的代码从存储在LongBLOB中的数据库中提取字节,并将其写入D:\驱动器上的文件。

然后使用用户的默认PDF应用程序打开它。

如果没有先写入文件,是否可以直接打开?不希望用户在可以查看文件之前必须下载该文件。

以下是PDF代码视图:

public void viewPdf(ActionEvent event) throws IOException, SQLException {
    byte[] pdf;
    Controller control = new Controller();
    Connection con = control.connectDB();
    PreparedStatement statement = con.prepareStatement("SELECT pdf, filename FROM files WHERE pdf_id =?");
    statement.setInt(1, pdfId);

    ResultSet rs = statement.executeQuery();
    if (rs.next()) {
        pdf = rs.getBytes("pdf");
        filename = rs.getString("filename");
        OutputStream newFile = new FileOutputStream("D:/pdfs/" + filename);
        newFile.write(fileBytes);
        newFile.close();

    }
    Desktop.getDesktop().open(new File("D:/pdfs/" + filename));
    statement.close();
    con.close();
}

0 个答案:

没有答案