【解決方法】C# で webclient.downloaddata を使用して PDF をダウンロードする際のエラー

プログラミングQA


たとえば、「https://www.[REDACTED].com/article/toDownload.pdf”

ブラウザにURLを貼り付けるとPDFがダウンロードされます。

私がしたいのは、PDFをダウンロードして次のように変換することです base64

問題:

しかし、コードを次のように変換した後、 base64、適切な PDF 形式が表示されません。 Base64に変換されますが、デコード後は base64 オンラインで PDF に変換すると、有効な形式が表示されません。
誰かこれを手伝ってくれませんか?

C#
string downloadPdf = "https://www.[REDACTED].com/article/toDownload.pdf";

 using (WebClient webClient = new WebClient())
    {
	    webClient.Headers["Cache-Control"]= "public";
        webClient.Headers["Content-Description"] = "File Transfer";
        webClient.Headers["Content-Disposition"] = "attachment; 
        filename=$sample\".\".pdf";
        webClient.Headers["Content-Type"] = "application/pdf";
        webClient.Headers["Content-Transfer"] = "binary";
	    byte[] imageBytes = webClient.DownloadData(downloadPdf);
        var base64 = Convert.ToBase64String(imageBytes);
	}

オンライン ツールでは、base64 を PDF にデコードした後に次のエラーが表示されます。

"The MIME of file was detected as "application/octet-stream", but the decoder displays it as "application/pdf". To view it as is ,  Your browser cannot display the file as "application/pdf"."

私が試したこと:

Google から入手した別のコードを試しましたが、同じ問題に直面しています。 私も使いました httpWebRequest C#で。

解決策 1

まず、実際にダウンロードしたものを確認します。そこから得られるものは、PDF ファイルではなく HTML ページである可能性が高いです。
確認する最も簡単な方法は、データをダウンロードしてローカルに PDF ファイルに保存し、PDF ビューアで開いて問題がないことを確認することです。 あればPDFデータです。 そうでない場合は、エディタを使用して調べてみると、おそらくそれが実際に何であるかがわかるでしょう。

コメント

タイトルとURLをコピーしました