Не удалось правильно прочитать файлы с помощью asp.net C # - PullRequest
0 голосов
/ 24 мая 2011
    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). И может кто-нибудь сказать, как читать файлы .pdf в веб-браузере, как открытие в Adobe Reader в новой вкладке. Спасибо

Ответы [ 3 ]

2 голосов
/ 24 мая 2011

Чтобы загрузить файл 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();
}
1 голос
/ 24 мая 2011

Вы можете прочитать PDF-файл в браузере только с помощью надстройки для браузера, которую можно скачать здесь: http://kb2.adobe.com/cps/331/331025.html

Для правильного просмотра файлов в браузере вы должны установить для него типы пантомимы:

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

Подробнее о типах пантомимы: http://www.w3schools.com/media/media_mimeref.asp

0 голосов
/ 24 мая 2011

Ваш подход читает исходное содержимое файла. Txt-файлы отображаются правильно, поскольку их содержимое представляет собой простой текст, doc / rtf / pdf и другие форматы требуют специальных элементов управления для их правильного отображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...