很抱歉如果我的问题有点混乱,但我认为我可以通过详细的解释来澄清。
我非常新于保存/上传文件。 最近我已经能够上传图像并将其保存到数据库中作为base64
(数据类型= mediumblob
),并通过设置<img src='base64_data_from_db' />
再次在浏览器中显示它。
现在是我真正的问题。
我必须上传任何类型的文件到数据库中。 保存后,用户必须能够通过单击链接/按钮(我使用了链接)在浏览器中下载文件。 我能够使用base64保存文件。
我现在有的问题是如何将base64字符串转换为实际/原始文件(如MS Word,文本文件,图像等)并将其下载到用户计算机上。
我删除了base64字符串的前缀,并使用window.atob(str)
进行转换。 我可以看到当我console.log(window.atob(str))
时,某种程度上可以看到文件的内容,但我不知道该如何下载它。
注意:我在保存时使用了base64,因为我使用JSON保存它。 我正在使用Java Spring Hibernate。 我尝试过谷歌搜索,但大多数时间我看到的是“如何将Base64转换为图像”之类的内容... 正如我之前所说,我已经在<img src=''/>
中显示了图像。 我也在阅读有关javascript FileReader的文章,但它需要Blob作为参数,而我所拥有的是base64字符串。
由于我不知道该怎么做,下面是一个非常不完整的代码...
// strBase64 -- The base64 string equivalent of the file
function convBase64ToFile(strBase64) {
var tmp = strBase64.split(","); // To remove the prefix
var converted = window.atob(tmp[1]); //
console.log(converted); // Displays the content of the actual file
}
请帮忙……