Upload a file to a web using VBA

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance



There is a site on our company's INTRANET that I need to upload a file to.
This is a FORM that needs the fileName to be populated, but I have not been able to get it to accept fileName from any means I have tried. I have ALL of the other fields working and it is to the point all I need to do is manually select the file, but I need to automate this.

I have been able to access the site, stuff all kinds of other info into the websites varables, but I have NOT been able to stuff the fileName to upload.
Here is the code (including some failed attempts) to get the file name into the web page.
First, I am opening the page and logging in with a userform ("fNTLogin")


[code]

Function ProcessScout() As Boolean
Dim oScout As Object
Dim ScoutWeb As String
Dim fileName As String
Dim newscoutname As String
Dim F As fNTLogin
'name of the file to upload
newscoutname = "h:\Scout\ScoutInPut" & Application.Substitute(Format(Date, "yyyymmdd"), "/", "-") & ".txt"

GetAccountList 'function to get a list of account numbers
ScoutWeb = "http://internalWebsite.com/network_monitoring/servlet/network_monitoring";
Set oScout = OpenScout(ScoutWeb) 'opens the site and gets the object 'oScout'
'waitforweb2 (oScout)
While oScout.busy
DoEvents
Wend
While oScout.ReadyState <> 4
DoEvents
Wend
spage = oScout.document.DocumentElement.outerHTML ' the the outer html for testing purposes
webWait = oScout.document.Title

'test for logged in
If InStr(spage, "Please enter your NT user name and password") > 0 Then
'login
Do While InStr(spage, "Please enter your NT user name and password") > 0
Set F = New fNTLogin 'Creates the login form
F.Value1 = "" 'set username value to ""
F.Value2 = "" 'set password value to ""
F.Display 'shows the form
pub_UserName = F.Result1 'sets the username for other logins
pub_pw = F.Result2 'sets the pw for other logins
Set F = Nothing 'distroys the form
With oScout.document.form1
.all.Item("user").Value = pub_UserName
.all.Item("pass").Value = pub_pw
.Submit
End With
While oScout.busy
DoEvents
Wend
While oScout.ReadyState <> 4
DoEvents
Wend
spage = oScout.document.DocumentElement.outerHTML 'resetting spage for testing if logged in
Loop

End If
' We are now logged in
oScout.Navigate "http://internalwebsite.com:8070/network_monitoring/servlet/network_monitoring?reqType=cmLookupPage"; ' move to the page to upload account info
While oScout.busy
DoEvents
Wend
While oScout.ReadyState <> 4
DoEvents
Wend
oScout.document.form1.searchType.Value = "bulkaccount"
oScout.document.form1.bulkLoadType.Value = "account"
oScout.document.getElementById("divMAC").Style.visibility = "hidden"
oScout.document.getElementById("divPhone").Style.visibility = "hidden"
oScout.document.getElementById("divAccount").Style.visibility = "hidden"
oScout.document.getElementById("divNode").Style.visibility = "hidden"
oScout.document.getElementById("divBulkMAC").Style.visibility = "visible"
oScout.document.form1.Mac.Value = ""
oScout.document.form1.account.Value = ""
oScout.document.form1.phone.Value = ""
oScout.document.form1.Node.Value = ""
oScout.document.form1.reqType.Value = "onDemandBatch"
oScout.document.form1.Encoding = "multipart/form-data"

With oScout.document.form1 'document name = "document" form name = "form1"
.report(3).Click 'select the third report option 'this works
.Email.Value = "Bruce_Johnson7@xxxxxxxxxxxxxxxxxxx" ' this works
.FileName.Value = "H:\Scout\ScoutInPut1-7-2010.txt" 'this does not error, but it does not stuff the name
End With

' UploadFile oScout, "H:\Scout\ScoutInPut1-7-2010.txt", "fileName" ' another failed attempt

'Failed attempt below
' Set Files = oScout.document.getElementsByTagName("input")
' For Each File In Files
'
' If File.Type = "file" Then
' If SetFeatureTo Then
' check.Checked = True
' ' Exit Sub
' Else
' ' check.Checked = False
' ' Exit Sub
' End If
' End If
' ' End If
' ' r = check.Value
' Next


oScout.document.form1.fileName.Value = "H:\Scout\ScoutInPut1-7-2010.txt" ' no errors but does not populate Call setfeature(oScout, "billing", True)
Call setfeature(oScout, "ecx", True)
Call setfeature(oScout, "gds", True)
Call setfeature(oScout, "bacc", True)
Call setfeature(oScout, "switch", True)
With oScout.document.form1
.all.Item("fileName").Value = "H:\Scout\ScoutInPut1-12-2010.txt"

'.all.Item("pass").Value = pub_pw
'.Submit.Click
End With

MsgBox "Please select file and pres Submit" '<< this is to handle it in the
'meantime until I get the stuffing of the file name working
oScout.document.form1.Submit
spage = oScout.document.DocumentElement.Title
Debug.Print spage

webWait = oScout.document.Title

End Function
[/code]



Here is the webpage html code that needs to recieve the filename:

Enter Email Address:<br>
<input type=text size=25 name=email value=""><br><br>
Select File To Upload:<br>
<input type=file name=fileName><br>



Thanks
Bruce

.



Relevant Pages

  • RE: Uploading files to Web server
    ... CodeBehind on upload button click event ... filUpload.PostedFile.SaveAs(locationOnWebServer + fileName); ... file.InputStream.Read(buffer, 0, fileLength); ... Dim file As HttpPostedFile = filUpload.PostedFile ...
    (microsoft.public.dotnet.framework.aspnet)
  • Upload large data
    ... Dim fileName As String = FileUpload1.FileName ... ' Append the name of the file to upload to the path. ...
    (microsoft.public.dotnet.framework.aspnet)
  • Re: Upload large data
    ... I have the follwing code that I used it to upload data to my web site: ... Dim fileName As String = FileUpload1.FileName ... Dim pathToCheck As String = savePath + fileName ...
    (microsoft.public.dotnet.framework.aspnet)
  • Re: Upload large data
    ... I have the follwing code that I used it to upload data to my web site: ... Dim fileName As String = FileUpload1.FileName ...
    (microsoft.public.dotnet.framework.aspnet)
  • RE: Excel macro range problem
    ... but the "iv:iv" but the filename in every single row. ... in the last cell of the row it's writing to. ... Dim strTempFileName As String ... 'Initialize the CommaCount variable to zero. ...
    (microsoft.public.excel.programming)