1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim sFilepath As String = Server.MapPath(".") & "\new.docx"
Dim fiFichier_info As New FileInfo(sFilepath)
Dim iTaille As Integer = 1000000
Dim byBuffer(iTaille) As Byte
Dim iLength As Integer
Dim lDataToRead As Long
Dim msMemStream As New MemoryStream()
Using package As WordprocessingDocument = WordprocessingDocument.Create(msMemStream, WordprocessingDocumentType.Document)
package.AddMainDocumentPart()
package.MainDocumentPart.Document = New Document(New Body(New Paragraph(New Run(New Text("Bonjour à tous")))))
package.MainDocumentPart.Document.Save()
End Using
Response.Clear()
Response.Buffer = True
Try
msMemStream.Seek(0, SeekOrigin.Begin)
lDataToRead = msMemStream.Length
Response.ContentType = "application/octet-stream"
Response.AddHeader("Content-Disposition", "attachment; filename=" + fiFichier_info.Name)
Response.AddHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0")
Response.AddHeader("Pragma", "no-cache")
Response.AddHeader("Expires", 0)
While lDataToRead > 0
If Response.IsClientConnected Then
iLength = msMemStream.Read(byBuffer, 0, iTaille)
Response.OutputStream.Write(byBuffer, 0, iLength)
Response.Flush()
ReDim byBuffer(iTaille) 'Vider le buffer
lDataToRead = lDataToRead - iLength
Else
lDataToRead = -1
End If
End While
Catch ex As Exception
Response.Write("Error : " & ex.Message)
Finally
If IsNothing(msMemStream) = False Then
msMemStream.Close()
End If
End Try
Response.Close()
End Sub |
Partager