0
    System.IO.StreamReader sr = new System.IO.StreamReader(Server.MapPath(strheadlinesid1));

    string line;

    while (sr.Peek() != -1)
    {
        line = sr.ReadLine();
        Response.Write("<tr>"+"<td>"+ Server.HtmlEncode(line) + "</td>"+"</tr>");
    }

上記のコードを使用してファイルを読み取っていますが、これは.txtファイルを正しく読み取っているだけです(.doc、docx、および.rtfを正しく読み取っていません)。そして、新しいタブでAdobe Readerを開くように、Webブラウザで.pdfファイルを読み取る方法を誰かに教えてもらえますか。ありがとうございます。

4

3 に答える 3

2

PDFファイルをダウンロードするには、PDFファイルを使用してこのコードを呼び出します。ユーザーのブラウザの設定によっては、必要に応じて新しいタブで開く場合があります。

public static void DownloadFile(string fname, bool forceDownload)
{
    string path = fname;
    if (fname.StartsWith("~"))
        path = Server.MapPath(fname);
    string name = Path.GetFileName(path);
    string ext = Path.GetExtension(path);
    string type = "";
    // set known types based on file extension  
    if (ext != null)
    {
        switch (ext.ToLower())
        {
            case ".htm":
            case ".html":
                type = "text/HTML";
                break;

            case ".txt":
                type = "text/plain";
                break;

            case ".pdf":
                type = "Application/pdf";
                break;

            case ".doc":
            case ".rtf":
                type = "Application/msword";
                break;

            case ".exe":
                type = "application/octet-stream";
                break;

            case ".zip":
                type = "application/zip";
                break;
        }
    }
    if (forceDownload)
    {
        Response.AppendHeader("content-disposition",
            "attachment; filename=" + name);
    }
    if (!string.IsNullOrEmpty(type))
        Response.ContentType = type;
    Response.WriteFile(path);
    Response.End();
}
于 2011-05-24T09:02:39.797 に答える
1

ブラウザのPDFファイルは、ブラウザのアドインによってのみ読み取ることができます。ここからダウンロードできます:http: //kb2.adobe.com/cps/331/331025.html

ブラウザでファイルを正しく表示するには、mimeタイプを設定する必要があります。

context.Response.ContentType = "application/pdf";
context.Response.AppendHeader("Content-Disposition", "attachment; filename = " + fileName);

Mimeタイプの詳細: http ://www.w3schools.com/media/media_mimeref.asp

于 2011-05-24T08:52:11.600 に答える
0

あなたのアプローチは、ファイルの生のコンテンツを読み取ります。Txt-ファイルのコンテンツはプレーンテキストであるため、ファイルは正しく表示されます。doc/ rtf / pdfおよびその他の形式では、ファイルを正しく表示するために特別なコントロールが必要になります。

于 2011-05-24T08:48:06.850 に答える