2017-05-11 8 views
0

J'ai le code ci-dessous:fichier avec l'extension .msg pas le téléchargement

Dim filePath As String = Request.QueryString("FilePath") 
    Dim fileName As String = filePath.Substring(filePath.LastIndexOf("/") + 1) 
    Dim ext As String = Path.GetExtension(fileName) 
    'If (ext = ".xls") Then 
    ' Response.ContentType = "application/vnd.ms-excel" 
    'ElseIf (ext = ".xlsx") Then 
    ' Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" 
    'End If 
    If ext = ".msg" Then 
     Response.ContentType = "application/octet-stream" 
     'Response.ContentType = "application/vnd.ms-outlook" 
    ElseIf (ext = ".xls") Then 
     Response.ContentType = "application/vnd.ms-excel" 
    ElseIf (ext = ".xlsx") Then 
     Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" 
    End If 
    'fileName = Server.MapPath("~\\files\\RAP_Batch_Upload_form.xls") 
    Response.AppendHeader("Content-Disposition", "attachment;filename=" & fileName) 
    'Response.AddHeader("Content-Length", New System.IO.FileInfo(fileName).Length) 
    'Response.AddHeader("Content-Length", New System.IO.FileInfo("Batch_test_11.xlsx").Length) 
    Response.Redirect(filePath) 
    Response.End() 

Je suis en mesure de télécharger les fichiers avec .xls et .xlsx mais les fichiers .msg donnera page ne erreur trouvée. Les fichiers sont stockés dans un dossier Attachments et un exemple de filePath ressemble à http://our.domain.com/Attachment/2017123456 Demo_Re.msg (Space fait partie de fileName et pour les fichiers .xls et .xlsx ce n'est pas un problème).

Quelqu'un pourrait-il me dire ce qui me manque?

Répondre

1

Ouvrez votre IIS, sélectionnez Propriétés pour votre site

Sélectionnez En-tête HTTP -> cliquez sur Types MIME -> Cliquez sur Nouveau et ajouter ".msg" comme l'extension et "application/vsd.ms-perspectives" comme type MIME .

+0

D'accord, je dois ajouter .msg à IIS jusqu'à ce que je ne fonctionne pas correctement? Dois-je l'ajouter uniquement dans IIS ou ajouter dans web.config est suffisant? –

+0

Je l'ai seulement ajouté via IIS, donc je ne peux pas commenter web.config. – levis84

+0

Je voulais dire application/vsd.ms-outlook. J'ai ajouté à web.config. Ça ne fonctionne pas. Je suis en train de tester dans VS 2015 IIS Express. –