I’m having some issues with a powerpoint presentation, generated by Aspose, being streamed to a client (presentation is attached). In a nutshell I’ve got a very simple setup; the Aspose component generates the Presentation, which is saved to a Memory Stream, this memory stream is then written to the client using the ASP 2.0 Response.Output() method.
The problem is that in Firefox, the outputted stream hangs the Firefox download manager. The prompt appears, asking the user to Save or Open the file, but then it just sits there with “Starting…” by the file-name. The main issue is that this is intermittent, it’ll happen two out of three times for example.
If I save the memory stream to a file, and try and stream the file using Response.WriteFile([path to presentation file]) - the same issue exhibits itself, however if I locate the cached file on the server, the file does open in Powerpoint (2007) without any problems (so it does not appear to be corrupt).
The plot thickens; If I create a new presentation in Powerpoint 2007, and save it to .ppt format, bypassing Aspose.Slides, the resultant file always streams to the Firefox client without any problem. If I copy slides from an Aspose.Slides generated presentation into a new Powerpoint 2007 presentation (and save to .ppt) however, the problem exhibits itself again. Any time Aspose.Slides is involved, the issue with Firefox apppears - omitting Aspose.Slides removes the problem :<br>
As an additional note, I’d add I have no problem streaming content from Aspose.Cells or any of your other components. Likewise, other file types (.PDF, .JPG etc) all stream without incident to Firefox. This problem is specific to Firefox and Aspose.Slides.
Sample Server Code
Response.BufferOutput = True
'Content length and Content Type headers omitted.
Response.AddHeader(“Content-Disposition”, “attachment; filename=file.ppt”)
Aspose.Slides version is 184.108.40.206
I found no such issue when tested the PPT as provided by you with both Internet Explorer and Mozila Firfox 3.5.5. I used following code:
Presentation pres = new Presentation("broken_output.ppt");
//this.Response.ContentType = "application/vnd.ms-powerpoint";
this.Response.AppendHeader("Content-Disposition", "attachment; filename=test.ppt");
System.IO.Stream st = this.Response.OutputStream;