PALANI KUMAR.A Ответов: 2

Невозможно вычислить выражение, так как код оптимизирован или собственный фрейм находится поверх стека вызовов. ошибка при загрузке pdf-файла


Дорогие Все,
При загрузке pdf-файла появляется следующая ошибка и файл не удается загрузить..

Вот мое кодирование:
string strFileName = @"D:\\File\1.pdf".ToString();
                   System.IO.FileStream fs = new System.IO.FileStream(strFileName, System.IO.FileMode.Open, System.IO.FileAccess.Read);
                   //fs = File.Open(strFileName, FileMode.Open);
                   byte[] bytBytes = new byte[(int)fs.Length];
                   fs.Read(bytBytes, 0, (int)fs.Length);
                   fs.Close();
                   Response.AddHeader("Content-disposition", "attachment; filename=" + strFileName);
                   Response.ContentType = "application/octet-stream";
                   Response.BinaryWrite(bytBytes);
                   Response.Flush();
                   Response.End();

Я использую Visual studio 2008. Любое пространство имен должно быть добавлено сюда?
Решите мою проблему ..
заранее спасибо


С уважением,
Палани Кумар.Один

2 Ответов

Рейтинг:
11

PALANI KUMAR.A

Дорогие Все,

Спасибо, ребята...

Я сам решил свой вопрос.. Просто уберите Панель Обновления с моей страницы он скачивает файл...

Без панели обновления он будет работать нормально....


С уважением,
Палани Кумар.Один


Рейтинг:
1

Dave Kreskowiak

Во-первых, добавление пространства имен ничего вам не даст. Это просто показывает, что вы понятия не имеете, что такое пространство имен и для чего оно используется.

Во-вторых, одна из моих самых больших домашних обид-видеть, как люди звонят .ToString() на веревочке. Ну же!! Подумай об этом!!

В-третьих, ваше имя файла-это недопустимый путь. Как написано, Из-за @ характер, ваше имя файла "D:\\File\1.pfd". Двойная обратная косая черта в самом начале вызывает проблему.

Я думаю, что вы не понимаете разницы между строкой, которую следует обрабатывать буквально, и строкой, которая должна быть обработана для escape-последовательностей. Удалите одну из обратных косых черт из удвоенной пары, и это исправит проблему.

Наконец, если вы хотите отправить файл в ответ, вы можете значительно сократить этот код и отказаться от чтения файла. Вам вообще не нужно его читать:

string strFileName = @"D:\File\1.pdf";
Response.AppendHeader("content-disposition", "attachment; filename=" + strFileName);
Response.ContentType = "application/pdf";
Response.WriteFile(strFileName);



P.S.: А что это за венгерская нотация?? Вы знаете, что такое добавление типа переменной к имени переменной?? Так давным-давно поступили динозавры.