0
ブロブのコンテナからファイルをダウンロードしています&ストリームに保存& pdfを読もうとしています。ストリームからPDFを読み取っているときにPDFヘッダーの署名が見つかりませんでした
//creating a Cloud Storage instance
CloudStorageAccount StorageAccount = CloudStorageAccount.Parse(connectionstring);
//Creating a Client to operate on blob
CloudBlobClient blobClient = StorageAccount.CreateCloudBlobClient();
// fetching the container based on name
CloudBlobContainer container = blobClient.GetContainerReference(containerName);
//Get a reference to a blob within the container.
CloudBlockBlob blob = container.GetBlockBlobReference(fileName);
var memStream = new MemoryStream();
blob.DownloadToStream(memStream);
try
{
PdfReader reader = new PdfReader(memStream);
}
catch(Exception ex)
{
}
例外:PDFヘッダシグネチャが見つかりません。
blob.DownloadToStream(memStream);
がダウンロードされたコンテンツの後にストリームに右
を配置:コメント通過後のトラブルシューティング明らかであったとして
だから、あなたは確信している、それは* * PDFファイルですか?ローカルファイルに保存して内容を検査しようとしましたか? –
はい、ローカルに保存しようとしましたが動作します。しかし、なぜそれがストリームで動作していないのか分かりません。 –
もう一つの理由は、 'DownloadToStream'を呼び出した後に、ストリームの位置がダウンロードされたコンテンツの*後に置かれ、' PdfReader'が現在どこからでもPdfを読むことができるということです。 'DownloadToStream'の後にこのコード行を追加してみてください:' memStream.Position = 0; ' –