【发布时间】:2020-03-13 15:36:02
【问题描述】:
我有一个提供流的服务。此流应写入 pdf 文件。
我试过这个方法,但是没用:
Using hcwHandler As IHealthCareWorkerServiceHandler = Container.CurrentContainer.Resolve(Of IHealthCareWorkerServiceHandler)()
stream = hcwHandler.DownloadPrescription(New DownloadPrescriptionRequest With {
.ProfessionCode = ucSelectProfession.ProfessionCode,
.RizivNumber = ucSelectProfession.Nihdi,
.Culture = language
}).Result
End Using
Dim buffer As Byte() = Encoding.ASCII.GetBytes(stream.ToString())
Using ms As New MemoryStream(buffer)
'write to file
Using file As New FileStream("prescription.pdf", FileMode.Create, FileAccess.Write)
ms.WriteTo(file)
End Using
End Using
我也尝试了其他几种解决方案,但似乎都没有奏效。 我从来没有得到文件。
谁能帮帮我?
【问题讨论】:
-
在
Dim file As New FileStream("prescription.pdf", FileMode.Create, FileAccess.Write)这一行放一个断点以确保到达。 -
@preciousbetine 到达该行。所以这不是问题。
-
该文件应该在您当前的文件夹中。你在哪里检查文件?
-
@preciousbetine 我找不到 pdf 文件
-
@BartSchelkens 1) 如您所知,如果 PDF 的二进制数据作为字符串处理(例如使用
stream.ToString()),那么它将被损坏,Encoding.ASCII.GetBytes甚至会损坏它更多的。 2) 始终提供文件的完整路径,以便您知道它在哪里。