将应用程序/八位字节流从IE9中的javascript保存到磁盘

时间:2015-11-05 07:45:17

标签: javascript file stream internet-explorer-9 savefiledialog

我在WebApi上提供了一个下载文件的方法:

public HttpResponseMessage Get(int id)
    {
            MemoryStream file = RetrieveFile(id);
            if (file != null)
            {
                var response = new HttpResponseMessage(HttpStatusCode.OK);
                response.Content = new StreamContent(file);
                response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
                response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
                {
                    FileName = "dummy.txt"
                };

                return response;
            }


        return new HttpResponseMessage(HttpStatusCode.NotFound);
    }

这很好用,我可以使用WebClient来使用它。

我还使用FileSaver.js实现javascript前端:

$http({
            url: myUrl,
            method: 'GET',
            params: {
                id: 1
            },
            headers: {
                'Content-type': 'application/json'
            }
        }).success(function (data, status, headers, config) {
            var file = new Blob([data], {
                type: 'application/octet-stream'
            });
            saveAs(file, "test.txt");

        }).error(function (data, status, headers, config) {

        });

这很好用但在IE9上失败,因为不支持FileSaver和Blop。 我试过在新窗口中打开网址,但找不到适合IE9的工作解决方案

0 个答案:

没有答案