Je crée une action de contrôleur simple dans ASP.NET MVC 2 (sous le framework .NET 4.0) qui va redimensionner les fichiers.FileResult renvoyant un fichier corrompu
J'ai un contrôleur comme ça (je l'ai coupé vers le bas un peu):
public ActionResult GetFile(int fileId, string fileSource) {
FileInfo file = repo.FindFileById(fileId);
//do some resizing
string mimeType = string.Empty;
switch(file.Extension) {
case ".jpg":
mimeType = "image/jpg";
break;
//some more stuff
default:
mimeType = "text/png";
break;
}
return File(file.FullName, mimeType);
}
Sur le système de fichiers, il permet d'économiser bien, je peux voir le fichier redimensionnée, mais dans le navigateur de la le fichier ne rend pas.
J'ai utilisé Charles pour inspecter la réponse et il revient avec un statut HTTP de 200, mais l'image n'est pas visible.
Si j'essaie de sauvegarder l'image et de l'afficher, la visionneuse d'images Windows indique qu'elle est corrompue.
J'ai aussi essayé avec ZIP (sans redimensionnement;)) et il retourne un fichier ZIP corrompu.
Je suis sûr que je fais juste quelque chose de mal mais je ne peux pas pour la vie de moi le repérer.
Modifier
Je l'ai testé à la fois Cassini et IIS 7.5 (Windows 7) et recevoir le problème dans les deux cas.
Je ne dis pas que cela explique votre problème, mais comme un commentaire de côté, ne doit pas être votre défaut « text/html »? –
Untested poignarder dans le noir, essayez d'utiliser un FileResult au lieu d'un ActionResult? – ChadT
Pourriez-vous fournir une version allégée de votre code de redimensionnement de l'image qui illustre le problème ainsi qu'un exemple d'image que nous pourrions utiliser pour reproduire ce comportement? –