HTTPWebRequest文件从内存上传

时间:2017-05-18 16:08:19

标签: php vb.net

我想从我的Windows应用程序向我的Web服务器发送数据。 首先,我使用URL参数发送数据,但由于URL长度限制,它因大数据而失败。然后我尝试发送文件上传等数据,但我的数据不是文件。这是非常长的字符串(大约4k字符)。 因此,互联网上的文件上传教程我用我的字节数组替换了FileStream,但在服务器端$_FILES变量是一个空数组。 这是我的代码。

Sub sendData(ByVal data As String)

    Dim enc_data As String = EncryptRJ256(data)
    Dim byteData() As Byte = Encoding.UTF8.GetBytes(enc_data)

    Dim postReq As HttpWebRequest = WebRequest.Create("http://example.com")
    postReq.Method = "POST"
    postReq.KeepAlive = True
    postReq.AllowWriteStreamBuffering = True
    postReq.ContentLength = byteData.Length

    Dim postreqstream As Stream = postReq.GetRequestStream()
    postreqstream.Write(byteData, 0, byteData.Length)
    postreqstream.Close()


    Dim postresponse As HttpWebResponse
    postresponse = postReq.GetResponse()
    Dim postreqreader As New StreamReader(postresponse.GetResponseStream())

    Dim thepage As String = postreqreader.ReadToEnd
    File.WriteAllText("C:\Users\kenar\Desktop\response.txt", thepage)
End Sub

服务器端没有任何显示内容。我正在使用apache web服务器并在PHP脚本上检查$_FILES变量。

1 个答案:

答案 0 :(得分:0)

您似乎没有上传文件,我建议您尝试检查$ _POST而不是数据,因为我在检查$ _GET之前猜测。如果您想要作为文件提交,您还必须设置适当的内容类型。