Je travaille sur une application web et j'ai besoin de diffuser divers fichiers. Je peux faire des fichiers PDF, des images et des documents Office plus anciens. Cependant, quand j'essaie de faire avec des documents de 2007, ça casse. Voici mon code:Comment diffuser un fichier Excel 2007 ou Word 2007 en utilisant asp.net et 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);
L'erreur que je reçois est:
An invalid character was found in text content. Error processing resource 'http://DomainName/GetFile.aspx... PK
Toutes les suggestions?
Essayé cela et c'est légèrement mieux. Je reçois au moins la boîte de dialogue Ouvrir/Enregistrer/Annuler. Cependant, si je clique sur ouvrir sur un fichier docx, je n'ai rien d'autre qu'une page html vierge. Si je clique sur enregistrer dans la boîte de dialogue, l'enregistre dans un fichier, puis l'ouvre, je clique sur certains messages d'erreur et puis j'obtiens le bon fichier. Pour les fichiers xlsx, si je sauvegarde puis ouvre, je reçois la même chose que docx, c'est-à-dire quelques messages d'erreur puis il s'ouvre. Toutefois, si je clique sur ouvrir sur le fichier xlsx, je dois cliquer sur quelques erreurs, puis ouvre Excel, mais au lieu des données, j'ai ma page de connexion – Kevin
J'ai ajouté un exemple de code qui fonctionne. –
C'est ce qu'il a fait. Pourquoi ça marche comme ça et pas l'inverse me dépasse, mais je suis trop occupé pour m'en préoccuper. – Kevin