it-swarm-eu.dev

Duplicitní záhlaví přijaté ze serveru

Duplicitní záhlaví přijaté ze serveru

Odpověď ze serveru obsahovala duplicitní záhlaví. Tento problém je obvykle výsledkem chybně nakonfigurovaného webu nebo serveru proxy. Tento problém může vyřešit pouze správce webu nebo proxy.

Chyba 349 (net :: ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION): Bylo přijato více různých záhlaví Content-Disposition. To je zakázáno chránit před útoky rozdělení reakce HTTP.

Našel jsem tuto chybu při exportu do pdf v chromu.

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();

Jak to opravit?

102
Purvesh Desai

Tyhle jsou trochu staré, ale byly vysoké v žebříčku Google, takže jsem si myslel, že bych hodil odpověď, kterou jsem našel Chrome, pdf displej, duplicitní záhlaví přijaté ze serveru

Můj problém byl také v tom, že název souboru obsahoval čárky. Vyměňte čárky za jejich odstranění a měli byste být v pořádku. Moje funkce pro vytvoření platného názvu souboru je níže.

    public static string MakeValidFileName(string name)
    {
        string invalidChars = Regex.Escape(new string(System.IO.Path.GetInvalidFileNameChars()));
        string invalidReStr = string.Format(@"[{0}]+", invalidChars);
        string replace = Regex.Replace(name, invalidReStr, "_").Replace(";", "").Replace(",", "");
        return replace;
    }
204
Bryan Roberts

ServerBYdal dvojité uvozovky kolem názvu souboru, jak je uvedeno v odpovědích @cusman a @Touko.

Například:

Response.AddHeader("Content-Disposition", "attachment;filename=\"" + filename + "\"");
86
tomc

Pro mě byl problém o čárce, která není v názvu souboru, ale níže: -

Response.ok (streamingOutput, MediaType.APPLICATION_OCTET_STREAM_TYPE) .header ("obsahová dispozice", " příloha, název souboru = your_file_name"). Build ();

Ne náhodou jsem přiložil čárku za přílohu. Byl vyřešen nahrazením čárky středníkem.

5
Deepak Agrawal

Stačí dát pár dvojitých uvozovek kolem názvu souboru takto:

this.Response.AddHeader ("Content-disposition", $ "příloha; filename =" {outputFileName} ");

2
user3578181

Dvojité uvozovky kolem názvu souboru v záhlaví jsou standardní webové dokumenty typu per MDN. Vynechání uvozovek vytváří více příležitostí pro problémy vyplývající ze znaků v názvu souboru.

0