C# 将64base字节数组转换为PDF格式,并在webBroswer组件中显示
这就是我想做的: 从数据库中获取一个64base字节数组(实际上是pdf格式)。这很有效。 然后我想在webbrowser组件中显示pdf 我首先将pdf保存到file.pdf,然后打开它:C# 将64base字节数组转换为PDF格式,并在webBroswer组件中显示,c#,C#,这就是我想做的: 从数据库中获取一个64base字节数组(实际上是pdf格式)。这很有效。 然后我想在webbrowser组件中显示pdf 我首先将pdf保存到file.pdf,然后打开它: byte[] bitjes = isc.GetFileById(fileid); // Getting the bytes FileStream stream = new FileStream(@"C:\NexusPDF\" + filename, FileMode.Cre
byte[] bitjes = isc.GetFileById(fileid); // Getting the bytes
FileStream stream = new FileStream(@"C:\NexusPDF\" + filename, FileMode.CreateNew);
BinaryWriter writer = new BinaryWriter(stream);
writer.Write(bitjes, 0, bitjes.Length);
writer.Close();
webBrowser.Navigate(@"C:\NexusPDF\" + filename);
但这给我带来了各种各样的问题,包括读/写访问。所以我想我必须使用memorystream类来解决这个问题
byte[] bitjes = isc.GetFileById(fileid);
MemoryStream memstream = new MemoryStream(bitjes);
BinaryWriter writer = new BinaryWriter(memstream);
writer.Write(bitjes, 0, bitjes.Length);
writer.Close();
但我被困在这里了!我不能在webBrowser组件中显示这一点,可以吗?
在显示pdf之前,我必须使用binaryreader吗
我是以正确的方式处理这个问题,还是有更好的选择
主要的是我不想把文件保存在磁盘上
任何帮助都将不胜感激。您可以使用数据URL方案。此URL方案指定内联内容
webBrowser.Navigate("data:application/pdf;base64," + X);
其中X是基64字符串
无需将基本64 PDF字符串转换为字节数组
有关详细信息,请参阅。什么样的读/写访问问题?如果其他人打开了相同的文件,我将无法删除它。如果多次搜索同一文件。我可以解决这些问题,但我不想一开始就在磁盘上创建文件。请为每个请求使用唯一名称(guid)保存它。谢谢@Giedrius,但我不想将文件存储在磁盘上。这将是一个非常好的解决方案,从未想过!但是我的字符串太大了,无法使用它。这里引用了您提供的链接:“可以用于HTML文档中的小型内联图像。(嵌入的图像可能接近实用程序的极限。对于其他更大的内容,数据URL可能不合适。)”我的文件可能是1mb左右。