Skip to content

Commit 946834e

Browse files
committed
Changed: Internal file reading algo for uploaded files to accommodate for possible future file reading changes in AutoIt.
1 parent 4fea706 commit 946834e

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

WinHttp.au3

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1920,10 +1920,12 @@ Func __WinHttpFileContent($sAccept, $sName, $sFileString, $sBoundaryMain = "")
19201920
If Not $sFileString Then Return $sOut & '; filename=""' & @CRLF & @CRLF & @CRLF
19211921
; Check $sFileString string
19221922
If StringRight($sFileString, 1) = "|" Then $sFileString = StringTrimRight($sFileString, 1)
1923-
Local $aFiles = StringSplit($sFileString, "|", 2)
1923+
Local $aFiles = StringSplit($sFileString, "|", 2), $hFile
19241924
If UBound($aFiles) = 1 Then
1925+
$hFile = FileOpen($aFiles[0], 16)
19251926
$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)
19271929
Return $sOut ; That's it
19281930
EndIf
19291931
; Multiple files specified, separated by "|". Support on server side required!
@@ -1932,19 +1934,23 @@ Func __WinHttpFileContent($sAccept, $sName, $sFileString, $sBoundaryMain = "")
19321934
$sOut = "" ; discharge
19331935
Local $iFiles = UBound($aFiles)
19341936
For $i = 0 To $iFiles - 1
1937+
$hFile = FileOpen($aFiles[$i], 16)
19351938
$sOut &= 'Content-Disposition: form-data; name="' & $sName & '"' & _
19361939
'; 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)
19381942
If $i < $iFiles - 1 Then $sOut &= "--" & $sBoundaryMain & @CRLF
19391943
Next
19401944
Else
19411945
; RFC2388 ( http://www.ietf.org/rfc/rfc2388.txt )
19421946
Local $sBoundary = StringFormat("%s%.5f", "----WinHttpSubBoundaryLine_", Random(10000, 99999))
19431947
$sOut &= @CRLF & "Content-Type: multipart/mixed; boundary=" & $sBoundary & @CRLF & @CRLF
19441948
For $i = 0 To UBound($aFiles) - 1
1949+
$hFile = FileOpen($aFiles[$i], 16)
19451950
$sOut &= "--" & $sBoundary & @CRLF & _
19461951
'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)
19481954
Next
19491955
$sOut &= "--" & $sBoundary & "--" & @CRLF
19501956
EndIf

0 commit comments

Comments
 (0)