2010-03-22 5 views
2

j'ai un liencomment ouvrir une page dans une autre instance du navigateur en cliquant sur un lien

<a id="DownloadLink" href='controller/action' target="_blank">Download File</a> 

qui doit ouvrir une image dans un autre onglet ou d'une page. mais il me propose de télécharger le fichier.
mon action se présente comme suit

public FileContentResult GetSurveyFile(int Id) 
     { 
      if (Id == 0) 
       return null; 
      Survey survey = Repository.GetItem(Id); 
      if (survey.File == null) 
       return null; 

      return File(survey.File.FileContent.ToArray(), survey.File.ContentType,survey.File.Name); 
     } 

où le type de contenu est une image /jpeg

ce qui est erroné?

+0

Comment votre navigateur est-il configuré pour gérer le type MIME "image/jpeg"? – korona

+1

Le problème ici est l'en-tête 'Content-Disposition'. – SLaks

+0

comment puis-je changer le Content-Disposition ??? – CoffeeCode

Répondre

5

Le navigateur gère les fichiers image selon les préférences du navigateur/système d'exploitation/utilisateur. Pour garantir absolument qu'il est ouvert et non téléchargé, il suffit d'envelopper l'image dans et la page html où l'image est la seule chose dans le corps.

2

Rien ne cloche avec ceci - si vous envoyez des données à un navigateur avec un ensemble de type mime, il peut décider d'offrir un téléchargement plutôt que d'afficher le contenu. La plupart des navigateurs sont configurés pour télécharger des fichiers MP3, par exemple.

Dans votre scénario, le navigateur décide de télécharger l'image.

Vous pouvez l'afficher en l'incorporant à l'intérieur d'une page HTML - ceci garantira qu'il s'affiche dans tous les navigateurs, plutôt que de télécharger - et l'utilisateur peut utiliser les méthodes normales pour enregistrer l'image de la page Web.

... 
<body> 
    <img src="your-c#-page" /> 
</body> 
.... 
Questions connexes