我正在尝试编写一个简单的Python脚本,将.odt文档插入到SQLite数据库中.这是我到目前为止所做的,但它似乎不起作用:
f=open('Loremipsum.odt', 'rb')
k=f.read()
f.close()
cursor.execute="INSERT INTO notes (note) VALUES ('%s')" %(sqlite.Binary(k))
cursor.close()
conn.close()
Run Code Online (Sandbox Code Playgroud)
我没有收到任何错误消息,但据我所知,记录未插入.我究竟做错了什么?另外,如何将存储的文档提取回来?谢谢!
那么,a的files属性input[type=file]是只读的.因此,我无法将blob数据写入此输入元素.
但是如果我使用创建新的输入文件元素Javscript,那么可以在创建时插入blob数据吗?我只对在chrome (extension)其他浏览器中工作的解决方案感兴趣.
我想使用Spring MVC和Hibernate在PostgresQL中存储一个实体(一个String +一个图像)这是我的表.该图像应该是oid的类型.
CREATE TABLE document
(
name character varying(200),
id serial NOT NULL,
content oid, // that should be the image
CONSTRAINT document_pkey PRIMARY KEY (id )
)
WITH (
OIDS=FALSE
);
Run Code Online (Sandbox Code Playgroud)
这是我想要存储的实体.
@Entity
@Table(name = "document")
public class Document {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
@Column(name = "name")
private String name;
@Column(name="content")
private Blob content; //this is the image
//getters- setters
Run Code Online (Sandbox Code Playgroud)
您可以看到变量"name"是String,而不是Long.仍然当我提交一个不是数字的值的表单时,它会抛出 org.postgresql.util.PSQLException: Bad value for type long : x
这是表格:
<form:form method="post" …Run Code Online (Sandbox Code Playgroud) 在搜索SO时,我发现了两个相互矛盾的答案(甚至是一条评论说明了这一点),但没有明确的答案:
问题是:如果在表外存储TEXT/BLOB字段,是否有任何性能优势?
我们猜测:
这篇文章指出,将TEXT/BLOB放入一个单独的表中,只有在你已经以错误的方式选择时才会有所帮助(即使没有必要也总是选择TEXT/BLOB) - 基本上说明了TEXT/BLOB中的TEXT/BLOB相同的表基本上是更好的解决方案(更少的复杂性,没有性能损失等),因为TEXT/BLOB无论如何都是单独存储的
将TEXT列移动到另一个表中的唯一时间将提供任何好处,如果通常从表中选择所有列的趋势.这只是引入第二种不良做法来弥补第一种不良做法.不言而喻,这两个错误与三个左翼不一样.
但是,这篇文章指出:
当表具有TEXT或BLOB列时,表无法存储在内存中
这是否意味着在表格中有一个TEXT/BLOB已经足够,以达到性能?
我的问题基本上是:答案是正确的?
如果你SELECT正确地将TEXT/BLOB存储到一个单独的表中,这真的很重要吗?
或者甚至在表格中有一个TEXT/BLOB,会产生潜在的性能影响?
我有一个文本区域,其中包含我想输出到文本文件供用户下载的文本.
当用户单击"保存"按钮时,我正在使用此功能来抓取它
function saveTextAsFile()
{
var textToWrite = document.getElementById("inputText").value;
var textFileAsBlob = new Blob([textToWrite], {type:'text/plain'});
alert(textFileAsBlob);
var fileNameToSaveAs = document.getElementById("inputFileNameToSaveAs").value;
var downloadLink = document.createElement("a");
downloadLink.download = fileNameToSaveAs;
downloadLink.innerHTML = "Download File";
if (window.webkitURL != null)
{
// Chrome allows the link to be clicked
// without actually adding it to the DOM.
downloadLink.href = window.webkitURL.createObjectURL(textFileAsBlob);
}
else
{
// Firefox requires the link to be added to the DOM
// before it can be clicked.
downloadLink.href = window.URL.createObjectURL(textFileAsBlob);
downloadLink.onclick = …Run Code Online (Sandbox Code Playgroud) 我试图将图像插入签名中的BLOB字段,然后我将从表中选择并在报表上呈现.我似乎无法想象如何将图像放入表格.我做了一个插入,但是当我渲染时,只有图像的路径显示在报告上,而不是图像本身.
表
CREATE TABLE esignatures (
office NUMBER(6,0) NOT NULL,
username VARCHAR2(10) NOT NULL,
iblob BLOB NOT NULL
)
Run Code Online (Sandbox Code Playgroud)
INSERT语句(SQL)
INSERT INTO esignatures
VALUES (100, 'BOB', utl_raw.cast_to_raw('C:\pictures\image1.png'));
Run Code Online (Sandbox Code Playgroud)
我知道我确定以HEX值的形式插入String位置如何在表格中获取图像HEX值,因此当我渲染时我将看到正在显示的图像.
我知道没有blob网址只有对象.
我为视频缓冲区创建了自己的blob对象,然后在视频标记的src中使用它,类似于blob://website.com/blablobbla.我在它工作的浏览器中打开了这个url
当我打开youtube视频src(blob url)的url到一个新标签时,它没有用,但是我的视频src(blob url)工作了
我想知道如何对我的blob网址执行相同操作,以便它们只能在html视频标记的src中工作,并且在浏览器的外部选项卡/窗口中发出错误或不起作用.我只是想知道这个和blob对象及其url属性背后的技术.
我有一些图像将显示在 React 应用程序中。我向服务器执行 GET 请求,该请求以 BLOB 格式返回图像。然后我将这些图像转换为 base64。最后,我在图像标签的 src 属性中设置这些 base64 字符串。
最近我开始使用 Fetch API。我想知道是否有办法在“一次”中进行转换。
下面是一个示例来解释我目前的想法和/或 Fetch API 是否可以实现这一点。我还没有在网上找到任何东西。
let reader = new window.FileReader();
fetch('http://localhost:3000/whatever')
.then(response => response.blob())
.then(myBlob => reader.readAsDataURL(myBlob))
.then(myBase64 => {
imagesString = myBase64
}).catch(error => {
//Lalala
})
Run Code Online (Sandbox Code Playgroud) 一个无能的Python新手需要帮助.我混淆了创建一个简单的脚本,将二进制文件插入到SQLite数据库的博客字段中:
import sqlite3
conn = sqlite3.connect('database.db')
cursor = conn.cursor()
input_note = raw_input(_(u'Note: '))
input_type = 'A'
input_file = raw_input(_(u'Enter path to file: '))
with open(input_file, 'rb') as f:
ablob = f.read()
f.close()
cursor.execute("INSERT INTO notes (note, file) VALUES('"+input_note+"', ?)", [buffer(ablob)])
conn.commit()
conn.close()
Run Code Online (Sandbox Code Playgroud)
现在我需要编写一个脚本来抓取特定记录的blob字段的内容,并将二进制blob写入文件.在我的例子中,我使用SQLite数据库来存储.odt文档,所以我想抓取它们并将它们保存为.odt文件.我该怎么做?谢谢!
我们的一个团队将开发一个应用程序来存储SQL2008数据库中的记录,并且每个记录都有一个相关的PDF文件.目前有大约340GB的文件,大多数(70%)大约是100K,但有些是几兆字节.数据主要是插入和读取,但文件有时会更新.我们正在讨论以下选项:
将文件存储为数据库中的BLOB.
将文件存储在数据库之外,并将路径存储在数据库中.
使用SQL2008的文件流功能来存储文件.
我们已经阅读了有关文件流数据的Micrsoft最佳实践,但由于文件大小不同,我们不确定选择哪条路径.我们倾向于选项3(文件流),但有一些问题:
考虑到上面提到的数据量和文件大小,您会选择哪种架构?
数据访问将使用SQL身份验证完成,而不是Windows身份验证,并且Web服务器可能无法使用Windows API访问这些文件.这会使filstream的表现比其他两个选项差吗?
由于SQL备份包含文件流数据,因此会导致非常大的数据库备份.其他人如何使用大量文件流数据处理备份数据库?
blob ×10
javascript ×3
sql ×3
binary ×2
python ×2
sqlite ×2
base64 ×1
fetch ×1
fetch-api ×1
file ×1
fileapi ×1
filestream ×1
hibernate ×1
html ×1
input ×1
java ×1
media-source ×1
mysql ×1
oracle ×1
oracle10g ×1
performance ×1
postgresql ×1
spring ×1
sql-server ×1
storage ×1
text ×1
url ×1
web ×1