Estoy trabajando en una aplicación web y necesito transmitir varios archivos. Puedo hacer archivos PDF, imágenes y documentos de Office anteriores. Sin embargo, cuando trato de hacer con documentos de 2007, se rompe. Aquí está mi código:¿Cómo se transmite un archivo de Excel 2007 o Word 2007 utilizando asp.net y C#
Response.Buffer = true;
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
switch (FileExtension.ToLower())
{
case "pdf":
Response.ContentType = "application/pdf";
break;
case "doc":
Response.ContentType = "application/msword";
break;
case "docx":
Response.ContentType = "application/vnd.ms-word.document.12";
break;
case "xls":
Response.ContentType = "application/vnd.ms-excel";
break;
case "xlsx":
Response.ContentType = "application/vnd.ms-excel.12";
break;
default:
Response.ContentType = "image/jpeg";
break;
}
Response.BinaryWrite(buffer);
El error que consigo es:
An invalid character was found in text content. Error processing resource 'http://DomainName/GetFile.aspx... PK
¿Alguna sugerencia?
Probé esto y es un poco mejor. Al menos estoy obteniendo el cuadro de diálogo abrir/guardar/cancelar. Sin embargo, si hago clic en abrir en un archivo docx, obtengo nada más que una página html en blanco. Si hago clic en guardar en el cuadro de diálogo, lo guardo en un archivo, luego lo abro, hago clic en algunos mensajes de error y luego obtengo el archivo correcto. Para los archivos xlsx, si guardo y luego abro, obtengo lo mismo que docx, es decir, algunos mensajes de error que se abren. Sin embargo, si hago clic en abrir en el archivo xlsx, tengo que hacer clic a través de algunos errores, luego Excel se abre, pero en lugar de los datos, tengo mi página de inicio de sesión – Kevin
Agregué un código de muestra que funciona. –
Eso lo hizo. Por qué funciona así y no de la otra manera está más allá de mí, pero estoy demasiado ocupado como para preocuparme por el momento. – Kevin