2013-12-16 23 views
5

我無法使用Web API獲取調用從服務器成功下載文件。下載似乎開始,但之後,Chrome拋出:將資源解釋爲文檔但使用MIME類型應用程序/ zip傳輸:

「資源解釋爲文檔,但與MIME類型應用程序/壓縮轉移」

Firefox不說,但下載仍然失敗。

什麼我在下面的設置?:

[HttpGet, Route("api/extractor/downloadresults")] 
    public HttpResponseMessage DownloadResultFiles() 
    { 
     int contentLength = 0; 
     this.ResultFiles.ForEach(f => contentLength = contentLength + f.FileSize); 

     var streamContent = new PushStreamContent((outputStream, httpContext, transportContent) => 
     { 
      ...zip files... 
     }); 

     streamContent.Headers.ContentType = new MediaTypeHeaderValue("application/zip"); 
     streamContent.Headers.ContentLength = contentLength; 
     streamContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") 
     { 
      FileName = "result.zip" 
     }; 

     var response = Request.CreateResponse(); 

     response.StatusCode = HttpStatusCode.OK; 
     response.Content = streamContent; 
    } 

做錯了我觸發通過下載:

window.location.href = "api/extractor/downloadresults"; 

利用收集到的標題:

請求頭

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 
    Accept-Encoding:gzip,deflate,sdch 
    Accept-Language:en-US,en;q=0.8 
    Connection:keep-alive 
    Cookie:ASP.NET_SessionId=ibwezezeutmu2gpajfnpf41p 
    Host:localhost:47384 
    Referer:http://localhost:47384/ 
    User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 

響應頭

Cache-Control:no-cache 
    Content-Disposition:attachment; filename=result.zip 
    Content-Length:436102 
    Content-Type:application/zip 
    Date:Mon, 16 Dec 2013 22:36:31 GMT 
    Expires:-1 
    Persistent-Auth:true 
    Pragma:no-cache 
    Server:Microsoft-IIS/8.0 
    X-AspNet-Version:4.0.30319 
    X-Powered-By:ASP.NET 
    X-SourceFiles:=?UTF-8?B?QzpcbmV3VG9vbGJveFxUb29sYm94XFRvb2xib3guV2ViXGFwaVx0ZXJtZXh0cmFjdG9yXGRvd25sb2FkcmVzdWx0ZmlsZXM=?= 
+0

嗨,對不起,我有同樣的問題。解決此警告的解決方案是什麼?謝謝 – VAAA

+0

@VAAA我從來沒有找到解決方案,請張貼,如果你有。我最終選擇了非流媒體解決方案,但這並不理想。 – parliament

回答

1

你有沒有試圖改變請求頭,例如接受頭?

另外,here你可以找到一個類似的問題,一些建議的解決方案可能會幫助你。

相關問題