Interacting with the web using WebRobot v1.0

Uploading files to YouSendIt: Submitting the form

Now, we are ready to submit our form:

  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
		System.EventArgs) Handles MyBase.Load
    Dim wrobot As New foxtrot.xray.WebRobot
    wrobot.Base = "http://www.yousendit.com/"
    wrobot.LoadPage("/")
    'getting file upload form from page
    Dim wform As foxtrot.xray.Form = wrobot.GetFormByName("tform")
    wform.AddField("text", "rcpt")
    wform.AddField("file", "fname")
    wform.AddField("hidden", "rurl", _ "http://www.yousendit.com/transfer.php?action=status")
    'creating an Open File Dialog to choose file to upload
    Dim fopendialog As New System.Windows.Forms.OpenFileDialog
    fopendialog.CheckFileExists = True
    If fopendialog.ShowDialog() = DialogResult.OK Then
        'open file for reading
        Dim fstream As New System.IO.FileStream(fopendialog.FileName, _ IO.FileMode.Open) 'temporary buffer to store contents of file
        Dim bytFile(fstream.Length - 1) As Byte
        'read in the file
fstream.Read(bytFile, 0, fstream.Length)
        'the contents of the file to be uploaded to the server
        Dim mstream As New System.IO.MemoryStream(bytFile)
        'getting email field by name from form
        Dim wemail As foxtrot.xray.Input = wform.GetFieldByName("rcpt")
        'getting file upload field from form
        Dim wfile As foxtrot.xray.Input = wform.GetFieldByName("fname")
'set your recipient's email here         wemail.InputValue = "none@domain.com"
'assign contents of file to the form field         wfile.InputValue = mstream
'assign filename to be sent         wfile.InputFileName = fopendialog.FileName
        Dim progressid As String
        'regular expression to find the PROGRESS_ID 'variable in the HTML source
        Dim regex As New System.Text.RegularExpressions.Regex_ ("var\sPROGRESS_ID\s=\s""(?<progid>\d+)"";")
        If (regex.IsMatch(wrobot.HTMLSource) = True) Then
            progressid = regex.Match(wrobot.HTMLSource).Result("${progid}")
'modifying the form action             wform.FormAction = wform.FormAction & "/" & progressid
            wrobot.SubmitForm(wform) 'submit form
            MessageBox.Show("File uploaded successfully")
        Else
            MessageBox.Show("YouSendIt PROGRESS_ID variable not found, _ cannot continue with upload!")
        End If
    End If
End Sub
If you want to fill out forms, or upload files, the WebRobot component is the way to go. It simplifies your life by taking care of all the underlying details of your web requests for you.

You can obtain the WebRobot component at http://foxtrot-xray.com/web-robot

You might also like...

Comments

Contribute

Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“To iterate is human, to recurse divine” - L. Peter Deutsch