google-chrome - modificar - modify header value chrome extension
Encabezados duplicados recibidos del servidor (4)
Encabezados duplicados recibidos del servidor
La respuesta del servidor contenía encabezados duplicados. Este problema generalmente es el resultado de un sitio web o proxy incorrectamente configurado. Solo el sitio web o el administrador proxy pueden solucionar este problema.
Error 349 (net :: ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION): Se recibieron múltiples encabezados diferentes de Content-Disposition. Esto no está permitido para proteger contra ataques de división de respuesta HTTP.
Encontré este error al exportar a pdf en 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();
¿Cómo arreglar esto?
El servidor DEBE poner comillas dobles alrededor del nombre del archivo, como se menciona por @cusman y @Touko en sus respuestas.
Por ejemplo:
Response.AddHeader("Content-Disposition", "attachment;filename=/"" + filename + "/"");
Estos eran un poco viejos pero estaban en el ranking de google así que pensé en arrojar la respuesta que encontré de Chrome, pantalla en PDF, encabezados duplicados recibidos del servidor
Básicamente, mi problema también era que el nombre de archivo contenía comas. Haz un reemplazo con comas para eliminarlos y deberías estar bien. Mi función para hacer un nombre de archivo válido está debajo.
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;
}
Para mí, el problema era que una coma no estaba en el nombre del archivo, sino como se muestra a continuación:
Response.ok (streamingOutput, MediaType.APPLICATION_OCTET_STREAM_TYPE) .header ("content-disposition", " attachment, filename = your_file_name"). Build ();
Accidentalmente puse una coma después del archivo adjunto. Lo resolvió reemplazando la coma con un punto y coma.
Simplemente ponga un par de comillas dobles alrededor de su nombre de archivo así:
this.Response.AddHeader ("Content-disposition", $ "attachment; filename = /" {outputFileName} / "");