我尝试使用以下代码java.sql.PreparedStatement
将mysql
Blob字段使用的pdf文件上载。
File inFile = new File("Path+BLOCK.pdf");
byte[] b = new byte[(int)inFile.length()];
PreparedStatement psmnt = (PreparedStatement)
con.prepareStatement("INSERT INTO
2012DOC (SRNO,DOCUMENT)
VALUES (?,?)"
); //con is java.sql.Connection object
psmnt.setString(1, "1200021");
psmnt.setBytes(2, b);
psmnt.executeUpdate();
这段代码没有错误地执行,并且数据库显示了blob内容,但是当我尝试使用以下代码检索文件时,它给出了一个无法打开的损坏文件。
ResultSet rs=con.Execute("SELECT DOCUMENT FROM 2012DOC");
rs.next();
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "attachment; filename=kjsahkjd.pdf");
java.sql.Blob blob = rs.getBlob("DOCUMENT");
ServletOutputStream servletOutputStream = response.getOutputStream();
InputStream in = blob.getBinaryStream();
int length = (int) blob.length();
int bufferSize = 1024;
byte[] buffer = new byte[bufferSize];
while ((length = in.read(buffer)) != -1) {
servletOutputStream.write(buffer, 0, length);
}
in.close();
servletOutputStream.flush();
servletOutputStream.close();
它输出的文件大小与原始文件大小相同,但文件没有打开。该pdf
阅读器被触发,但不能打开该文件,并给出了一个错误“的文件被损坏或不支持的文件类型”
嗯…经过一点调试后,我发现上载的代码很麻烦,并最终找到了正确的方法。
这是我所做的…我正在发布它,以便其他具有相同问题的人可以解决它
转换java.io.File
成后java.io.FileInputStream
FileInputStream io = new FileInputStream(inFile);
使用以下命令设置BLOB字段psmnt.setBinaryStream()
psmnt.setBinaryStream(3, (InputStream)io,(int)inFile.length());
我在后端使用spring-boot 2.0.4,在前端使用vue 2.5.16 / axios 0.18.0,我希望将PDF文件上传到后端数据库,并从前端检索它们。 最初,我的灵感来自于spring部分的这个例子:https://grokonez . com/frontend/angular/angular-6/angular-6-client-upload-files-download-file
我想为Python Selenium上传一个文件,但是send_keys方法(用文件的目录发送密钥)不起作用,我得到一个'message:element not interactable'。这是由于事实上,我的上传按钮不包含一个“输入”的html代码。我目前的代码允许你点击“上传文件”按钮,然后打开小的Mac Os窗口。在那之后,我不知道我能做什么。很明显,send_keys方法不起作用。 我正在
问题内容: 实际上,我正在使用带有Angular 2编码的接口的Spring REST API。 我的问题是我无法使用Angular 2上传文件。 我在Java中的Webresources是: 当我通过带有Auth标头等的URL请求调用它时(它具有适用于Chrome的Advanced Rest Client扩展),它完全可以正常工作 证明:(在这种情况下,一切正常) Spring配置文件和Pom依
问题内容: 尝试将文件上传到S3存储桶时遇到问题。一切正常,除了我的文件参数似乎不合适。我正在使用Amazon S3 SDK从Node.js上载到S3。 这些是我的路线设置: 这是items.upload()函数: 将param 设置为类似字符串的效果很好。根据doc,param必须获取 (缓冲区,类型数组,Blob,字符串,ReadableStream)对象数据。 但是,上传文件对象失败,并显示
问题内容: 是否可以使用http put方法将本地文件上传到保管箱?我正在上传文件,但没有文件?(“字节”:0) 如何向文件添加内容? 我的代码如下: 我的文件已成功上传,但没有内容?它是空的!该文档对我来说有点困惑:https : //www.dropbox.com/developers/core/docs#files_put 问题答案: @smarx:我正在发送一个空的HTTP PUT请求,最
问题内容: 我试图在此处修改@BalusC优秀教程,以发送gzip压缩文件。这是一个有效的java类: 您必须编辑和字段,并在URL中设置一个servlet-其方法是: 现在,当field设置为true时,FILENAME会被正确压缩并发送到服务器,但是当我尝试将其提取时,它已损坏(我在Windows上使用7z,它将打开gzip文件作为存档,但是当我尝试将文件提取到 内部时 , gzip归档文件说