Or...if you need to do some kind of processing and return a value (like
most web services do) then create a web page and do something like
below.  I was working on this today before the project was cancelled and
got it to work.

It receives 513 bytes at a time and writes them to a file.  The bytes
are supposed to be an XML file with one node containing base64 text of
another file.  It extracts that out and saves that to a file for
processing.  It then reads a file and sends those bytes back to the
caller at 513 bytes at a time. 

This is just a test case to prove it would work so bugs may exist but it
did work with the files I was using.


Partial Public Class _Default
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
        Try
            Dim bytecount As Int32
            Dim bytecount2 As Int32
            Dim Position As Int32
            Dim NumOfBytes As Int32 = 512
            Dim ReadBs As Int32
            bytecount = Request.TotalBytes
            bytecount2 = bytecount
            Dim b() As Byte = Nothing
            Dim F As System.IO.FileStream
            If bytecount2 > 0 Then
                F = New
System.IO.FileStream("c:\PGPworkingDir\test.dat", IO.FileMode.Create)
                Do Until bytecount = 0
                    ReDim b(NumOfBytes - 1)
                    If Request.InputStream.Length < NumOfBytes Then
                        NumOfBytes = CType(Request.InputStream.Length,
Int32)
                    End If
                    b = Request.BinaryRead(NumOfBytes)
                    Position += NumOfBytes
                    F.Write(b, 0, b.Length)
                    F.Flush()
                    bytecount -= NumOfBytes
                    If bytecount < NumOfBytes And bytecount > 0 Then
                        NumOfBytes = bytecount
                    End If
                Loop
                F.Close()

                F = New
System.IO.FileStream("c:\PGPworkingDir\test.dat", IO.FileMode.Open)
                Dim xml As New System.Xml.XmlTextReader(F)
                Dim OutFile As New
System.IO.FileStream("c:\PGPworkingDir\FiletToEncrypt.dat",
IO.FileMode.Create)

                xml.ReadToFollowing("file-contents")
                NumOfBytes = 512
                ReDim b(NumOfBytes)
                Do
                    ReadBs = xml.ReadElementContentAsBase64(b, 0,
NumOfBytes)
                    'ReadBs = xml.ReadValueChunk(Cs, 0, NumOfBytes)
                    If ReadBs < 512 Then
                        ReDim Preserve b(ReadBs - 1)
                        OutFile.Write(b, 0, ReadBs)
                        Exit Do
                    End If
                    OutFile.Write(b, 0, ReadBs)
                Loop
                OutFile.Flush()
                OutFile.Close()
                xml.Close()
                F.Close()
            End If

            F = New
System.IO.FileStream("c:\PGPworkingDir\decrypt_pdf_response.xml",
IO.FileMode.Open)
            Position = 0
            NumOfBytes = 512

            ReDim b(NumOfBytes - 1)
            Do
                ReadBs = F.Read(b, 0, NumOfBytes)
                If ReadBs < 512 Then
                    ReDim Preserve b(ReadBs - 1)
                    Response.BinaryWrite(b)
                    Exit Do
                End If
                Response.BinaryWrite(b)
            Loop
            Response.Flush()
            Response.Close()
            F.Close()
        Catch ex As Exception
            Response.Write(ex.ToString)
        End Try
    End Sub

End Class

-----Original Message-----
From: Discussion of advanced .NET topics.
[mailto:[EMAIL PROTECTED] On Behalf Of Stoyan Damov
Sent: Monday, August 20, 2007 3:15 PM
To: ADVANCED-DOTNET@DISCUSS.DEVELOP.COM
Subject: Re: [ADVANCED-DOTNET] WCF and MTOM

On 8/20/07, Nicolas Roy <[EMAIL PROTECTED]> wrote:
> I'm using HTTP binding and MTOM encoding to transfer large document
over a
...
> Anyone has experimented MTOM ?
>

I did and my answer is this - I want to spare you a *LOT* of
suffering, so for file transfer over the web:
- don't use WCF
- don't use MTOM
- don't use web services
- use plain and simple HTTP file upload

If anyone disagrees with me and/or wants to suggest anything -
*please* share it with Nicolas and not with *me*.

Cheers,
Stoyan

===================================
This list is hosted by DevelopMentor(r)  http://www.develop.com

View archives and manage your subscription(s) at
http://discuss.develop.com

===================================
This list is hosted by DevelopMentorĀ®  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com

Reply via email to