2017-03-29 9 views
0

私はC#apiを使用しています。UIから呼び出すと、呼び出すことができます。ブラウザの応答、APIから返されたデータが返されましたが、レスポンスのダウンロードは強制されませんでした。ここで私が使用していたコードは、C#のAPIであるC#からファイルをダウンロードできません。APIのブラウザの応答で見ることができます

var response = HttpContext.Current.Response; 
response.Clear(); 

string fileName = CleanFileName(string.Format("{0} test - {1}.txt", name, DateTime.Now.ToString("yyyy-MM-dd HH_mm_ss"))); 
response.AddHeader("content-disposition", "attachment; filename = \"" + fileName + "\""); 
response.ContentType = "text/csv"; 
response.AddHeader("Pragma", "must-revalidate"); 
response.AddHeader("Cache-Control", "must-revalidate"); 

byte[] byteArray = Encoding.UTF8.GetBytes(mydata); 
response.AppendHeader("Content-Length", byteArray.Length.ToString()); 
response.BinaryWrite(byteArray); 

response.End(); 
response.Flush(); 

おかげ

答えて

0

は、おそらくあなたは、クライアント側からのあなたのAPIの非同期呼び出しを行います。その場合、リクエストの結果としてAPIによって返されたすべてのデータが取得され、自動的にはダウンロードされません。これは、ポストバックを引き起こすと、ファイルがブラウザによってダウンロードされます

window.open(apiDownloadLink, '_blank', ''); 

は、クライアント側(JS)からこのような何かを試してみてください。

詳細は、this question

です。
関連する問題