Ошибка сети при загрузке файлов из Google Chrome

Я написал приведенный ниже код С # для загрузки вложений в свое приложение. Когда я запускаю код, я могу загружать файлы с помощью Mozilla, Internet Explorer, но это не работает в Google Chrome.

  string base64FileString = result; byte [] binaryFile = Convert.FromBase64String (base64FileString); Response.ContentType = "application/octet-stream"; Response.AddHeader ("content-disposition", String.Format (  "вложение; имя файла = " {0}  "", Request.QueryString ["FILENAME"])); Response.Clear (); Response.BufferOutput = false; Response.ClearContent (); Response.BinaryWrite (binaryFile);  Response.Flush (); Response.Close ();  

Кто-нибудь, пожалуйста, помогите мне, какие изменения необходимо сделать для загрузки в Chrome


Google Chrome не откроет для вас окно «сохранения файла», если «application/octet-stream» — это ваш ответ из формы.

Тип содержимого должен быть тем, чем он известен, если вы это знаете. Например. "application/pdf" , "image/png" или что угодно. См. Полный список типов MIME.

См. Этот вопрос Что может препятствовать загрузке файлов Chrome? для получения дополнительной информации.


0

Вы можете попробовать добавление заголовка Content-Length , но не уверен, что он эффективен:

  System.IO.FileInfo fl = new System.IO.FileInfo (downloadFilePath  ); this.HttpContext.ApplicationInstance.Context.Response.AddHeader ("Content-Length", fl.Length.ToString ());  

Поделиться
отредактировано 26 декабря ’19 в 2:58
ответил 26 дек. ’19 в 2:42
добавить комментарий |

Вы можете попробовать добавить заголовок Content-Length , но не уверены, что он эффективен:

  System.IO.FileInfo fl = new System.IO.FileInfo (downloadFilePath); this.HttpContext.ApplicationInstance.Context.Response.AddHeader ("Content-Length", fl.Length.ToString  ());  

0

Эта же проблема боялась меня несколько месяцев. Вот как я это решил.

  1. Открыть диспетчер IIS
  2. Щелкните активный сервер, на котором работает ваш сайт.
  3. В «Представлении возможностей» прокрутите вниз и найдите Редактор конфигурации в разделе « Серверный компонент ».
  4. В разделе редактора конфигурации есть раскрывающийся список. Просмотрите его и найдите
  5. Под ним вы должны найти
  6. Конфигурация, которую необходимо изменить: minBytePerSecond . значение по умолчанию может быть 240. Microsoft рекомендует 500, но эта проблема с загрузкой возникает, когда пользователь находится в регионе с медленным подключением к Интернету. Исправление заключается в установке значения на 0 . Там может быть сторона эффект от этого, потому что он может открыть вашу службу для медленной атаки loris

ПРИМЕЧАНИЕ. На основании того, что я читал в Интернете до сих пор, я считаю это исправление — приложение к IIS> 7. У меня был IIS 10, поэтому приведенные выше шаги относятся к IIS 10.

Надеюсь, это кому-то поможет.

Поделиться
ответил 9 окт.2020 в 11:37
добавить комментарий |

Эта же проблема пугала меня в течение нескольких месяцев. Вот как я это решил.

  1. Открыть диспетчер IIS
  2. Щелкните активный сервер, на котором работает ваш сайт.
  3. Прокрутите вниз «Обзор функций» и найдите Редактор конфигурации в разделе « Серверный компонент ».
  4. В разделе редактора конфигурации есть раскрывающийся список. Просмотрите его и найдите
  5. Под ним вы должны найти
  6. Конфигурация, которую необходимо изменить: minBytePerSecond . значение по умолчанию может быть 240. Microsoft рекомендует 500, но эта проблема с загрузкой возникает, когда пользователь находится в регионе с медленным подключением к Интернету. Для исправления устанавливается значение 0 . Может быть сторона эффект от этого, потому что он может открыть вашу службу для медленной атаки loris

ПРИМЕЧАНИЕ. На основании того, что я читал в Интернете до сих пор, я считаю это исправление является приложением к IIS> 7. У меня был IIS 10, поэтому приведенные выше шаги относятся к IIS 10.

Надеюсь, это кому-то поможет.

Оцените статью
Botgadget.ru
Добавить комментарий