我使用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();
}