Angular 5从c#web api下载docx文件

时间:2018-05-18 19:51:27

标签: asp.net-web-api angular5 docx

c#型号:

    public class docxModel
    {
        public byte[] testDocx { get; set; }
    }

c#web api文件返回方法代码:

    byte[] tDocx = File.Exists(wordFilePath) ? File.ReadAllBytes(wordFilePath):null;
    docxModel.testDocx = tDocx;
    return docxModel;

角度模型:

    export interface ITestDocxModel {
    testDocx: Blob;
    }

Angular服务有一个名为CreateWordDoc的方法,它将调用web api并将上面提到的c#模型映射到角度模型。

角度成分:

    async printToWord() {
        await this.testService.CreateWordDoc()
        .then((res: ITestDocxModel) => {
            this.testModel = res;
            this.testDocx = this.testModel.testDocx;
            var testBlob = new Blob([this.testDocx], { type: 'text/docx' });
            var url = window.URL.createObjectURL(testBlob);
            window.open(url);
        })
        .catch(err => {
            this.handleError(err);
        });
    }

当我从按钮单击调用print to word方法时,它会打开一个新窗口并显示二进制数据。

我希望打开word文档并选择另存为。

感谢任何帮助。

谢谢!

0 个答案:

没有答案