@@ -1920,10 +1920,12 @@ Func __WinHttpFileContent($sAccept, $sName, $sFileString, $sBoundaryMain = "")
1920
1920
If Not $sFileString Then Return $sOut & ' ; filename=""' & @CRLF & @CRLF & @CRLF
1921
1921
; Check $sFileString string
1922
1922
If StringRight ($sFileString , 1 ) = " |" Then $sFileString = StringTrimRight ($sFileString , 1 )
1923
- Local $aFiles = StringSplit ($sFileString , " |" , 2 )
1923
+ Local $aFiles = StringSplit ($sFileString , " |" , 2 ), $hFile
1924
1924
If UBound ($aFiles ) = 1 Then
1925
+ $hFile = FileOpen ($aFiles [0 ], 16 )
1925
1926
$sOut &= ' ; filename="' & StringRegExpReplace ($aFiles [0 ], " .*\\" , " " ) & ' "' & @CRLF & _
1926
- " Content-Type: " & __WinHttpMIMEType($aFiles [0 ]) & @CRLF & @CRLF & FileRead ($aFiles [0 ]) & @CRLF
1927
+ " Content-Type: " & __WinHttpMIMEType($aFiles [0 ]) & @CRLF & @CRLF & BinaryToString (FileRead ($hFile ), 1 ) & @CRLF
1928
+ FileClose ($hFile )
1927
1929
Return $sOut ; That's it
1928
1930
EndIf
1929
1931
; Multiple files specified, separated by "|". Support on server side required!
@@ -1932,19 +1934,23 @@ Func __WinHttpFileContent($sAccept, $sName, $sFileString, $sBoundaryMain = "")
1932
1934
$sOut = " " ; discharge
1933
1935
Local $iFiles = UBound ($aFiles )
1934
1936
For $i = 0 To $iFiles - 1
1937
+ $hFile = FileOpen ($aFiles [$i ], 16 )
1935
1938
$sOut &= ' Content-Disposition: form-data; name="' & $sName & ' "' & _
1936
1939
' ; filename="' & StringRegExpReplace ($aFiles [$i ], " .*\\" , " " ) & ' "' & @CRLF & _
1937
- " Content-Type: " & __WinHttpMIMEType($aFiles [$i ]) & @CRLF & @CRLF & FileRead ($aFiles [$i ]) & @CRLF
1940
+ " Content-Type: " & __WinHttpMIMEType($aFiles [$i ]) & @CRLF & @CRLF & BinaryToString (FileRead ($hFile ), 1 ) & @CRLF
1941
+ FileClose ($hFile )
1938
1942
If $i < $iFiles - 1 Then $sOut &= " --" & $sBoundaryMain & @CRLF
1939
1943
Next
1940
1944
Else
1941
1945
; RFC2388 ( http://www.ietf.org/rfc/rfc2388.txt )
1942
1946
Local $sBoundary = StringFormat (" %s%.5f" , " ----WinHttpSubBoundaryLine_" , Random (10000 , 99999 ))
1943
1947
$sOut &= @CRLF & " Content-Type: multipart/mixed; boundary=" & $sBoundary & @CRLF & @CRLF
1944
1948
For $i = 0 To UBound ($aFiles ) - 1
1949
+ $hFile = FileOpen ($aFiles [$i ], 16 )
1945
1950
$sOut &= " --" & $sBoundary & @CRLF & _
1946
1951
' Content-Disposition: file; filename="' & StringRegExpReplace ($aFiles [$i ], " .*\\" , " " ) & ' "' & @CRLF & _
1947
- " Content-Type: " & __WinHttpMIMEType($aFiles [$i ]) & @CRLF & @CRLF & FileRead ($aFiles [$i ]) & @CRLF
1952
+ " Content-Type: " & __WinHttpMIMEType($aFiles [$i ]) & @CRLF & @CRLF & BinaryToString (FileRead ($hFile ), 1 ) & @CRLF
1953
+ FileClose ($hFile )
1948
1954
Next
1949
1955
$sOut &= " --" & $sBoundary & " --" & @CRLF
1950
1956
EndIf
0 commit comments