今天我一直在试验 SQL 二进制对象。我首先将图像存储在表中,发出 AJAX 请求以对图像进行 base64 编码,然后将其显示出来。
<img src="data:image/jpeg;base64,' + base64imageReturnedWithAjax + '">')
图像显示正常。
我正在处理的 Web 项目还需要文件下载(主要是 PDF) - 太好了,我想,我也会将 PDF 存储为 SQL 二进制对象,以相同的方式从服务器收集它,然后以某种方式神奇地解码它在另一端下载。
帮助!
我首先尝试使用 jQuery base64 解码器(https://github.com/carlo/jquery-base64)对其进行解码:
$.base64.decode(base64fileReturnedWithAjax)
这会在控制台中生成以下错误:
Uncaught Cannot decode base64
_getbyte64
_decode
$.ajax.success
f.Callbacks.o
f.Callbacks.p.fireWith
w
f.support.ajax.f.ajaxTransport.send.d
因此,我的问题是:这是处理文件下载的可行方法吗?如果是这样,如何!如果没有,是否有建议的方法允许从 SQL 表下载文件?
亲切的问候, ATfPT
编辑:如果有帮助,这是从数据库/服务器(在 VB.NET 中)检索和发送文件的网络方法。Fileblob 是数据库中的二进制对象。
'Having connected to the table
While lrd.Read()
Dim fileBytes = CType(lrd("Fileblob"), Byte())
Dim stream = New MemoryStream(fileBytes, 0, fileBytes.Length)
Dim base64String = Convert.ToBase64String(stream.ToArray())
document.Add(base64String)
End While
Dim serializer As New JavaScriptSerializer()
Dim returnVal As String = serializer.Serialize(document)
Return returnVal