Jsp 如何将itext pdf插入数据库

Jsp 如何将itext pdf插入数据库,jsp,itext,Jsp,Itext,我正在用jsp编写代码。我已经使用itext生成了pdf。并尝试将文档保存到数据库(mysql)中 java编码新手。请帮忙你的问题充满矛盾 您说您想创建一个PDF文件(这是一个二进制文件),但您使用的是JSP。然而,如果您完成了关于JSP的课程(而不是在能够走路之前尝试运行),您会发现使用JSP创建二进制文件是不可能的。改用普通Java或Java servlet 您说希望在数据库中存储PDF,但是,当我查看代码时,我看到response.setContentType(“application/

我正在用jsp编写代码。我已经使用itext生成了pdf。并尝试将文档保存到数据库(mysql)中


java编码新手。请帮忙

你的问题充满矛盾

  • 您说您想创建一个PDF文件(这是一个二进制文件),但您使用的是JSP。然而,如果您完成了关于JSP的课程(而不是在能够走路之前尝试运行),您会发现使用JSP创建二进制文件是不可能的。改用普通Java或Java servlet
  • 您说希望在数据库中存储PDF,但是,当我查看代码时,我看到
    response.setContentType(“application/PDF”)这意味着您要将PDF发送到浏览器
  • 您表示希望将PDF存储在数据库中,同时尝试将其发送到浏览器,但不是这样做,而是将PDF保存在服务器的文件系统上:
    new FileOutputStream(filename)
    。就好像你不能决定你真正想做什么
  • 另外:打开文档后,可以为文档添加标题。您应该在打开文档之前添加标题
  • 如我的评论所示,您应该在内存中创建PDF:

    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    Document document = new Document();
    PdfWriter pd= PdfWriter.getInstance(document, baos);
    document.open();
    document.add(new Paragraph("Hello");
    document.close();
    
    现在您有了
    baos
    对象,您可以从中以
    字节[]
    的形式获取完整的PDF:

    byte[] pdf = baos.toByteArray();
    
    这在StackOverflow上已经得到了回答:
    一旦您有了
    字节[]
    ,如果这是额外要求,您还可以将PDF发送到浏览器。查看我的答案以了解如何操作。

    有任何问题/错误/异常吗?请问你的问题是什么?如果你需要将PDF作为BLOB存储到数据库中,你究竟为什么要在文件系统中创建文件?在内存中创建PDF作为
    ByteArrayOutputStream
    ,并将生成的
    字节[]
    存储在数据库中。您是否确实执行了该语句?可能存在重复的
    byte[] pdf = baos.toByteArray();