Tag: blob

将Blob存储在Heroku(或类似的云服务)中

我想在Heroku中部署一个应用程序来尝试他们的新游戏! 框架支持。 对于我在网站上看到的内容(我要承认我还没有尝试过),他们没有提供任何文件系统。 这意味着(可能)Play存储文件中使用的Blob字段将无法正常工作。 有人可以: 确认您是否可以在Heroku中使用Play Blob? 提供在Heroku中存储文件的“最佳”替代方案? 最好将它们存储在数据库中(它们使用PostgreSQL)还是其他地方?

Postgresql,JDBC和流式BLOB

我试图使用jdbc驱动程序从postgres数据库中检索blob。 内存太大,所以我想将其作为下载流式传输。 我尝试在ResultSet上使用getBinaryStream方法,但事实certificate这个方法实际上将它全部读入内存,因此不适用于大文件。 显然,可以在结果集上使用getBlob方法,并且可以从blob中获取输入流并从那里开始,但这就是我遇到问题的地方。 PreparedStatement ps = con.prepareStatement(“select data from file_data WHERE ID = ?”); ps.setLong(1,file.fileData.id) ResultSet rs = ps.executeQuery() if(rs.next()){ rs.getBlob(“data”) 那是我正在运行的代码。 当它到达最后一行时,它会抛出一个我无法理解的错误…… org.postgresql.util.PSQLException:long类型的错误值:xxxxxx “xxxxxx”然后是文件的内容。 你可以想象这会很长,但不是真的。 我被困在这里。 有没有人对正在发生的事情有任何想法? 哎呀我甚至会采用其他方法来流式传输大型blob作为下载。

如何将iTextPDF文档转换为字节数组

我需要在内存中创建后将iTextPDF Document文件转换为byte [] 。 我已经测试过,我没有正确创建PDF的问题。 问题是如何将其转换为字节数组以存储在DB中。 这是我的代码: Document generatedDocument = reportService.generateRequestForm(scdUser, jsonObject, 0, null); reportService.generateRequestForm(scdUser, jsonObject, 0, null); ByteArrayOutputStream baos = new ByteArrayOutputStream(); PdfWriter pdfWriter = PdfWriter.getInstance(generatedDocument, baos); generatedDocument.open(); document.setDocument(baos.toByteArray()); // stores as blob 我在数据库blob列中得到null值。 这是我的Document域对象: 文档域对象 @Entity @Table(name = “document”) public class Document implements java.io.Serializable { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = “document_id”, nullable […]

Java文件上传到MySQL

我有这个问题从选择JFileChooser获取java.io.File上传所述java.io.File对象到具有此表结构的MySQL表 COL_NAME COL_TYPE ATTRIBUTES EXTRA (PK) idSample int(10) UNSIGNED ZEROFILL AUTO_INCREMENT FileName varchar(250) FileBin blob BINARY 从这个Java代码中, newConnection方法是该类的静态方法,其中它返回DriverManager缺省的新实例到所述MySQL数据库。 另一件事,我使用java.sql包而不是com.mysql.jdbc包。 public static boolean insert(final String filename, File file) throws SQLException, IOException { boolean flag = false; try { Connection connection = newConnection(); PreparedStatement statement = connection.prepareStatement(SQL_INSERT); statement.setString(1, filename); statement.setBlob(2, new FileInputStream(file), file.length()); flag = statement.executeUpdate() > […]

从数据库中读取BLOB(PDF内容)并编辑和输出PDF编辑的文件,而无需创建物理文件

我正在使用Oracle数据库并将PDF内容存储在BLOB字段中。 我想阅读BLOB内容,然后编辑并输出已编辑的内容。 我需要做的编辑是: 在BLOB内容上方添加标题 在每页上添加水印 在每个页面上添加页脚 然后我需要输出文件,而不会在响应流中创建任何物理文件。 我尝试使用itext实现这一点,但没有到达任何地方。 我被困住了,不知道从哪里开始。 有时候我可能不得不将blob内容组合成一个,但有些事情必然会发生在一百万……所以现在不是一个问题…… 如何在java中使用以上三个步骤来实现我的主要要求? Itext可以吗? 或者是否有其他可用的库? 数据库:Oracle 10g第2版 操作系统:Linux Fedora / Redhat 前端:Java / Servlet / JSP 编辑 这是我试图做的 oracle.sql.BLOB blob = (BLOB) rs.getBlob(“MYPDF”); byte[] bytes = blob.getBytes(1, (int) blob.length()); InputStream is = blob.getBinaryStream(); Document document=new Document(); ServletOutputStream servletOutputStream = response.getOutputStream(); PdfWriter writer=PdfWriter.getInstance(document, servletOutputStream); document.open(); document.add(new Paragraph(“Some title”)); […]

如何在java中创建BLOB对象?

1.如何在java中创建BLOB对象? 2.如何从db设置BLOB值? 3.如何在DB中设置BLOB值? 我已经创建了BLOB对象 byte [] fileId=b.toByteArray(); Blob blob=new SerialBlob(fileId); 但它给了我错误。所以请任何人帮助我。 提前致谢。

在没有光标的Android Sqlite中访问大型BLOB

Android的Cursor Window大小似乎有1MB的限制,这限制了从SQLite读取BLOB的能力。 我知道您可能会说我们不应该将BLOB存储在数据库中,但根据定义,BLOB被视为二进制大对象,如果不需要将它们存储在数据库中,则无需在任何数据库引擎中实现此类对象类型。 然而,在几乎所有情况下,Cursor实现的1 MB限制似乎都不够。 我需要在SQLite数据库中存储我的二进制数据是有正当理由的,它们都超过1 MB。 SQLite能够完美地处理BLOB,因为C API在Xcode(iPhone平台)中运行得非常好,可以毫无问题地检索大型对象。 我的问题是,如果我们可以在不使用游标的情况下访问Android中的BLOB数据。 我正在考虑在Java中对Sqlite进行较低级别的访问。 有什么建议么?

用于从Java中的blob内容创建文件的代码段

我有一些文件存储在Oracle 9的数据库blob列中。 我想将这些文件存储在文件系统中。 这应该很简单,但我找不到合适的剪辑。 我怎么能在java中这样做? PreparedStatement ptmst = … ResutlSet rs = pstmt.executeQuery(); rs.getBlob(); // mistery FileOutputStream out = new FileOutputStream(); out.write(); // etc et c 我知道它应该是那样的…我不知道的是被评论为什么的错误 谢谢 编辑 我终于得到了大卫的问题。 这是我懒惰的实现: PreparedStatement pstmt = connection.prepareStatement(“select BINARY from MYTABLE”); ResultSet rs = pstmt.executeQuery(); while( rs.next() ) { Blob blob = rs.getBlob(“BINARY”); System.out.println(“Read “+ blob.length() + ” […]

如何使用Hibernate将数据流式传输到数据库BLOB(在byte 中没有内存存储)

我正在寻找一种方法将二进制数据流入/流出数据库。 如果可能的话,我希望用Hibernate完成(以数据库无关的方式)。 我发现的所有解决方案都涉及将二进制数据显式或隐式加载到内存中作为byte []。 我需要避免它。 假设我希望我的代码能够从数据库(存储在BLOB列中)向本地文件写入2GBvideo,或者相反,使用不超过256Mb的内存。 它显然是可以实现的,并且不涉及伏都教。 但是我找不到办法,现在我正试图避免调试Hibernate。 让我们看看示例代码(记住-Jmx = 256Mb)。 实体类: public class SimpleBean { private Long id; private Blob data; // … skipping getters, setters and constructors. } Hibernate映射片段: 测试代码片段: Configuration cfg = new Configuration().configure(“hibernate.cfg.xml”); ServiceRegistry serviceRegistry = new ServiceRegistryBuilder() .applySettings(cfg.getProperties()) .buildServiceRegistry(); SessionFactory sessionFactory = cfg.buildSessionFactory(serviceRegistry); Session session = sessionFactory.openSession(); session.beginTransaction(); File dataFile […]

如何在JSP中使用标记显示图像

这是在动作类中检索图像的代码。 我试过了,但无法显示它我不知道图像处理。 我应该如何在JSP中使用标签来显示图像? public String displayImage() { Connection con = null; PreparedStatement preparedStatement = null; ResultSet resultSet = null; String sql,result=””; con=JdbcHelper.getConnection(); if(con!=null) { try { sql = “SELECT INPUT_FILE_BLOB FROM message_details where message_id=?”; preparedStatement = con.prepareStatement(sql); preparedStatement.setString(1, messageid); resultSet = preparedStatement.executeQuery(); if(resultSet.next()) { Blob image = resultSet.getBlob(“INPUT_FILE_BLOB”); System.out.println(“=============Image2\n” +image); int len1 = (int) image.length(); […]