0

私はこのコードを持っています..

<li><a href="downloads/PDF_File.pdf">PDF</a></li>

しかし、それはpdfファイルを開きます.ASP.NETを初めて使用するようになりました.ダウンロードダイアログボックスを開くにはどうすればよいですか?

4

3 に答える 3

0

基本的に、ここで起こっているのは、pdf ファイルの通常の動作です。IIS はデフォルトで、Web アプリケーション内のすべての pdf ファイルに対して "pdf" MIME タイプを提供します。アプリケーションで pdf にアクセスすると、ブラウザーは MIME タイプを読み取り、pdf ファイルにアクセスしていることを認識します。ほとんどのブラウザーは、保存するように求めるのではなく、組み込みの PDF リーダーに表示したいと考えます。PDF のダウンロード ダイアログ ボックスを表示する必要がある場合は、web.config で PDF の MIME タイプを変更して、IIS がアプリケーション内の基本的なファイル タイプとして PDF を提供するようにします。

<configuration>
    <system.webServer>
        <staticContent>
            <remove fileExtension=".pdf" />
            <mimeMap fileExtension=".pdf" mimeType="application/octet-stream" />
        </staticContent>
    </system.webServer>
</configuration>

注: web.config で手動で設定している MIME タイプを最初に削除する必要があります。これは、同じ拡張子の MIME タイプがアプリケーション レベルで既に設定されている可能性があるためです。

これで、IIS は PDF ファイルを基本/不明なファイル タイプとして提供し、ダウンロード可能になります。「.pdf」を別の拡張子に交換するだけであれば、これはどのファイルタイプでも機能します。

于 2012-06-05T14:53:18.547 に答える
0

既存のファイルでこれを行う方法はわかりませんが、少し前に、iTextSharp と ASP.net (フレームワーク 4) の MemoryStream オブジェクトを組み合わせて作成し、pdf ファイルをダウンロードするコードを書きました。

MemoryStream msPDF = new MemoryStream();
// do some stuff with iTextSharp ...
Response.ContentType = "application/pdf";
Response.AppendHeader("Content-Disposition", "attachment; filename=myPdf.pdf"); // open/save dialog
Response.BinaryWrite(msPDF.ToArray());
于 2012-10-09T14:31:16.473 に答える