• From a real quick look, bearing in mind that I'm not a VB developer: -

    Imports System

    Imports System.Data

    Imports System.Math

    Imports Microsoft.SqlServer.Dts.Runtime

    Imports System.Net

    Imports System.IO

    Imports System.Text

    <System.AddIn.AddIn("ScriptMain", Version:="1.0", Publisher:="", Description:="")> _

    <System.CLSCompliantAttribute(False)> _

    Partial Public Class ScriptMain

    Inherits Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase

    Enum ScriptResults

    Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success

    Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure

    End Enum

    Public Sub Main()

    Dim FilePathName As String = Dts.Variables.Item("InboundPathAndName").Value

    Try

    'create the information we need to send as part of post to let

    'the ASPX page know about the file data

    Dim DataString As StringBuilder = New StringBuilder

    DataString.Append("------xyz" + vbCrLf)

    DataString.Append("Content-Disposition: form-data; name=" + _

    """" + "file" + """" + "; filename=" + """" + FilePathName + """" + vbCrLf)

    'set the file type to octet-stream so we can handle any kind of Data()

    DataString.Append("Content-Type: application/octet-stream" + vbCrLf + vbCrLf)

    Dim webReq As HttpWebRequest = SetWebRequest(New System.Uri(Dts.Variables.Item("HttpPostURL").Value), FilePathName)

    'send the data about the file

    SendFileInformation(webReq.GetRequestStream(), DataString, FilePathName)

    'Get the response from the server

    Dim webResp As HttpWebResponse = webReq.GetResponse()

    Dim sr As New StreamReader(webResp.GetResponseStream())

    'put the stream data in a string

    Dim respData As String = sr.ReadToEnd()

    sr.Close()

    webResp.Close()

    MessageBox.Show(respData)

    Catch webExcp As WebException

    'If you reach this point, an exception has been caught.

    'Write out the WebException message.

    MessageBox.Show("An error occured." + webExcp.ToString())

    Return

    Catch myExcp As Exception

    MessageBox.Show("A WebException has been caught." + myExcp.ToString())

    Return

    End Try

    Dts.TaskResult = ScriptResults.Success

    End Sub

    Private Function SetWebRequest(ByVal Url As System.Uri, ByVal FilePathName As String) As HttpWebRequest

    Dim webReq As HttpWebRequest

    webReq = CType(WebRequest.Create(Url), HttpWebRequest)

    'POST Data

    webReq.Method = "POST"

    webReq.Headers.Add("Accept-Language", "en-us")

    webReq.KeepAlive = True

    ' convert username:password to basic 64 format and append to the HTTP header

    webReq.Headers.Add("Authorization", Dts.Variables.Item("HttpAuth").Value)

    If My.Computer.FileSystem.FileExists(FilePathName) Then

    webReq.ContentLength = New FileInfo(FilePathName).Length

    Else

    Throw New Exception("File not found")

    End If

    webReq.ContentType = "multipart/form-data; boundary=------xyz"

    webReq.Headers.Add("Accept-Encoding", "gzip, deflate")

    Return webReq

    End Function

    Private Sub SendFileInformation(ByVal tempStream As Stream, ByVal DataString As StringBuilder, ByVal FilePathName As String)

    Dim ReadIn As FileStream = New FileStream(FilePathName, FileMode.Open, FileAccess.Read)

    ReadIn.Seek(0, SeekOrigin.Begin) 'move to the start of the file

    Dim DataRead As Integer = 0

    Dim FileData(1024) As Byte

    Dim FileInfo As Byte() = System.Text.Encoding.Default.GetBytes(DataString.ToString())

    tempStream.Write(FileInfo, 0, FileInfo.Length)

    Do

    DataRead = ReadIn.Read(FileData, 0, 1024)

    If (DataRead > 0) Then 'we have data

    tempStream.Write(FileData, 0, DataRead)

    Array.Clear(FileData, 0, 1024) 'clear the array

    End If

    Loop While (DataRead > 0)

    Dim endingBoundary As Byte() = _

    System.Text.Encoding.Default.GetBytes(vbCrLf + "------xyz--" + vbCrLf)

    ' send the closing boundry

    tempStream.Write(endingBoundary, 0, endingBoundary.Length)

    'close the stream

    ReadIn.Close()

    tempStream.Close()

    End Sub

    End Class

    --edit--

    I didn't refresh the page before I posted, so didn't spot that David Burrows had already answered. The majority of the changes I've made are formatting so that I could get my head around what was going on.


    Forever trying to learn
    My blog - http://www.cadavre.co.uk/
    For better, quicker answers on T-SQL questions, click on the following...http://www.sqlservercentral.com/articles/Best+Practices/61537/
    For better, quicker answers on SQL Server performance related questions, click on the following...http://www.sqlservercentral.com/articles/SQLServerCentral/66909/