我创建了一个异步文件下载方法,它不会提示用户下载文件。没有错误,代码和jquery运行正常,但是,浏览器不会提示下载。我已经查看了SO的所有解决方案,但我似乎无法工作。
public async Task<HttpResponseMessage> Method(string data)
{
//do stuff
response.StatusCode = HttpStatusCode.OK;
response.Content = new StreamContent(new FileStream(downloadFileName, FileMode.Open, FileAccess.Read));
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
response.Content.Headers.ContentDisposition.FileName = myFileName;
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
return response;
}
答案 0 :(得分:0)
在$ .get完成后添加iframe并更改其来源让浏览器打开下载对话框。
function callback(result) {
$('#myFrame').attr('src', '/worksitefileservice/api/xfer/download?data=' + encodeURIComponent(json));
}
<iframe id="myFrame" style="visibility:hidden;display:none;" src=""></iframe>