Повторяющиеся заголовки получены с сервера
Ответ от сервера содержал повторяющиеся заголовки. Эта проблема обычно является результатом неправильно настроенного веб-сайта или прокси-сервера. Только администратор веб-сайта или прокси-сервера может решить эту проблему.
Ошибка 349 (net :: ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION): получено несколько отдельных заголовков Content-Disposition. Это запрещено для защиты от атак с разделением HTTP-ответа.
Я обнаружил эту ошибку при экспорте в pdf в Chrome.
Response.Buffer = false;
Response.ClearHeaders();
string ext = objProp.PACKAGEFILENAME.Substring(objProp.PACKAGEFILENAME.LastIndexOf("."));
string ext1 = ext.Substring(1);
Response.ContentType = ext1;
Response.AddHeader("Content-Disposition", "target;_blank,attachment; filename=" + objProp.PACKAGEFILENAME);
const int ChunkSize = 1024;
byte[] binary = objProp.PACKAGEDOCUMENT;
System.IO.MemoryStream ms = new System.IO.MemoryStream(binary);
int SizeToWrite = ChunkSize;
for (int i = 0; i < binary.GetUpperBound(0) - 1; i = i + ChunkSize)
{
if (!Response.IsClientConnected) return;
if (i + ChunkSize >= binary.Length) SizeToWrite = binary.Length - i;
byte[] chunk = new byte[SizeToWrite];
ms.Read(chunk, 0, SizeToWrite);
Response.BinaryWrite(chunk);
Response.Flush();
}
Response.Close();
Как это исправить?
google-chrome
pdf
http-headers
Пурвеш Десаи
источник
источник
Response.AddHeader("content-disposition", "attachment; filename=\"" + FileNameWithCommas + "\"");
Ответы:
Это немного старовато, но занимало высокое место в рейтинге Google, поэтому я подумал, что добавлю ответ, который я нашел из Chrome, отображение pdf, повторяющиеся заголовки, полученные с сервера
В основном моя проблема также заключалась в том, что имя файла содержало запятые. Замените запятые, чтобы удалить их, и все будет в порядке. Моя функция для создания действительного имени файла приведена ниже.
источник
.Replace(";", "").Replace(",", "")
при уже замене на RegEx? Добавьте;,
в свой шаблонstring invalidReStr = string.Format(@"[{0};,]+", invalidChars); string replace = Regex.Replace(name, invalidReStr, "_");
Серверу СЛЕДУЕТ заключать имя файла в двойные кавычки, как указано @cusman и @Touko в их ответах.
Например:
источник
Для меня проблема заключалась в запятой не в имени файла, а как показано ниже: -
Response.ok (streamingOutput, MediaType.APPLICATION_OCTET_STREAM_TYPE) .header ("расположение содержимого", " вложение, имя файла = имя_вашего_файла»). Build ();
Я случайно поставил запятую после прикрепления. Решил, заменив запятую точкой с запятой.
источник
Просто заключите имя файла в двойные кавычки, например:
this.Response.AddHeader ("Content-disposition", $ "attachment; filename = \" {outputFileName} \ "");
источник
Двойные кавычки вокруг имени файла в заголовке являются стандартом для веб-документов MDN. Отсутствие кавычек создает множество возможностей для проблем, возникающих из-за символов в имени файла.
источник