异步文件上传不会提示浏览器下载文件

时间:2014-06-12 02:22:45

标签: jquery ajax file-upload asp.net-web-api

我创建了一个异步文件下载方法,它不会提示用户下载文件。没有错误,代码和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;

}

1 个答案:

答案 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>