簡體   English   中英

WebAPI使用內存流下載PowerPoint文件

[英]WebAPI to download PowerPoint file using memory stream

我無法使用Powerpoint演示文稿庫(Syncfusion)下載帶有內容的文件。 該文檔僅提供ASP示例,沒有專門的Web API。

我可以將文件保存到具有添加到Powerpoint的上下文的文件系統中。
我可以使用API​​將文件下載到用戶瀏覽器,但是此Powerpoint為空。

Syncfusion具有將Powerpoint保存到內存流的功能,所以我想我的問題是將流中的內容保存到用戶瀏覽器的正確方法什么?

我正在使用HTTPGet並通過瀏覽器點擊鏈接。
我是否需要發送上下文類型或類似內容?

謝謝你的幫助,
如果可以的話,我可以提供我目前所擁有的。 庫爾蒂斯

編輯:

    [HttpGet, Route("")]
    public HttpResponseMessage Get()
    {
        var presentation = Presentation.Create();

        var firstSlide = presentation.Slides.Add(SlideLayoutType.Blank);
        var textShape = firstSlide.AddTextBox(100, 75, 756, 200);

        var paragraph = textShape.TextBody.AddParagraph();
        paragraph.HorizontalAlignment = HorizontalAlignmentType.Center;

        var textPart = paragraph.AddTextPart("Kurtis' Presentation");
        textPart.Font.FontSize = 80;

        var memoryStream = new MemoryStream();
        presentation.Save(memoryStream);

        var result = Request.CreateResponse(HttpStatusCode.OK);
        result.Content = new StreamContent(memoryStream);
        result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
        result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
        {
            FileName = "export.pptx"
        };

        return result;
    }

這就是我所擁有的,該庫將演示文稿保存到內存流中,您可以將參數更改為將其寫入文件的字符串,並且可以為MVC傳遞文件名,格式和HttpResponse,但是我無法使它與我的API控制器一起使用。 我不斷收到網絡錯誤,但不知道為什么。

再次感謝

我在評論中的其他人的幫助下發現了我的問題。

上面的代碼可以工作,但是我需要將流位置重置為零才能實際寫入數據。 memoryStream.Position = 0;

感謝那些發表評論的人。 :-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM