Отправка данных на сервер - VB
Формулировка задачи:
Доброго времени суток. Столкнулся с первого взгляда - достаточно простой задачей, но "гусей" собрать не получается.
Есть необходимость выложить некоторые данные (текст, двоичные данные) на сервер посредством MSXML2.ServerXMLHTTP и PHP скрипта на серверной стороне.
и всё вроде-как работает, но
Есть необходимость выложить некоторые данные (текст, двоичные данные) на сервер посредством MSXML2.ServerXMLHTTP и PHP скрипта на серверной стороне.
и всё вроде-как работает, но
myfile.bin
имеет кодировку UTF-8, и никакие погоды не делают (iconv и mb_convert_encoding в php-скрипте тоже не помогли). Вопрос: что я делаю не так, и каким образом скрипт PHP может получить/записать во внешний файл текст в "Windows-1251" кодировке, ну и второй вопрос - передача бинарных данных (а именно file-upload). Если у кого есть опыт - поделитесь решением.
Решение задачи: «Отправка данных на сервер»
textual
Листинг программы
Private Function PostFile(Url As String, FileName As String, Optional ByVal Async As Boolean) As String
Const STR_BOUNDARY As String = "MYBOUNDARY"
Dim nFile As Integer
Dim Buffer() As Byte
Dim PostData As String
Dim XMLHTTP As New XMLHTTP
nFile = FreeFile
Open FileName For Binary Access Read As nFile
If LOF(nFile) > 0 Then
ReDim baBuffer(0 To LOF(nFile) - 1) As Byte
Get nFile, , Buffer
PostData = StrConv(Buffer, vbUnicode)
End If
Close nFile
PostData = "--" & STR_BOUNDARY & vbCrLf & _
"Content-Disposition: form-data; name=""uploadfile""; filename=""" & Mid$(FileName, InStrRev(FileName, "\") + 1) & """" & vbCrLf & _
"Content-Type: application/octet-stream" & vbCrLf & vbCrLf & _
PostData & vbCrLf & _
"--" & STR_BOUNDARY & "--"
With XMLHTTP
.Open "POST", Url, Async
.SetRequestHeader "Content-Type", "multipart/form-data; boundary=" & STR_BOUNDARY
.Send ToByteArray(PostData)
If Not Async Then
PostFile = .ResponseText
End If
End With
End Function
Private Function ToByteArray(sText As String) As Byte()
ToByteArray = StrConv(sText, vbFromUnicode)
End Function
..........
PostFile "http://127.0.0.1/upload2.php?DIR=.", App.Path & "\apache.gif"