Объявите переменную с let
вместо var
. Вы можете использовать
for (let i=0; i<allToggleBs.length; i++)
Попробуйте добавить
Response.End ();
после вызова Response.BinaryWrite ().
Вы можете случайно отправить другой контент обратно после Response.BinaryWrite, который может сбить с толку браузер. Response.End гарантирует, что браузер получит только то, что вы действительно хотите.
Поскольку вы отправляете файл прямо из своей файловой системы без промежуточной обработки, почему бы не использовать вместо него Response.TransmitFile
?
Response.Clear();
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Disposition",
"attachment; filename=\"" + Path.GetFileName(path) + "\"");
Response.TransmitFile(path);
Response.End();
(подозреваю, что ваша проблема вызвана отсутствием Response.End
,
Response.BinaryWrite(bytes);
Response.Flush();
Response.Close();
Response.End();
У нас это работает. Мы создаем PDF-файлы из SQL Reporting Services.
Мы использовали это с большой успех. WriteFile выполняет загрузку за вас, а в конце - Flush / End, чтобы отправить все это клиенту.
//Use these headers to display a saves as / download
//Response.ContentType = "application/octet-stream";
//Response.AddHeader("Content-Disposition", String.Format("attachment; filename={0}.pdf", Path.GetFileName(Path)));
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Disposition", String.Format("inline; filename={0}.pdf", Path.GetFileName(Path)));
Response.WriteFile(path);
Response.Flush();
Response.End();
Возможно, вам не хватает Response.close для закрытия двоичного потока
В дополнение к Response.Close () Игоря я бы добавил Response.Flush ().