Wie bereits vermutet war die Content-Length falsch.
statt StringLen() muss BinaryLen() verwendet werden.
AutoIt: 250kb.au3
Func test()
Local $sPacket, $iSocket, $iTimer, $sPost
$boundary = Random(13, 37)
$file = FileRead(FileOpen("unbenannt.jpg",16))
ConsoleWrite(StringLen($file)&@CRLF)
ConsoleWrite(FileGetSize("unbenannt.jpg")&@CRLF)
$sPost = '---' & $boundary & @CRLF & _
'Content-Disposition: form-data; name="file_0"; filename="unbenannt.jpg"'& @CRLF & _
'Content-Type: image/jpeg'& @CRLF & _
''& @CRLF
$spost2= @crlf & '---' & $boundary & @CRLF & _
'Content-Disposition: form-data; name="scaling[0]"'& @CRLF & _
''& @CRLF & _
'no-scaling'& @CRLF & _
'---' & $boundary & @CRLF & _
'Content-Disposition: form-data; name="duration"'& @CRLF & _
''& @CRLF & _
'24h'& @CRLF & _
'---' & $boundary & @CRLF & _
'Content-Disposition: form-data; name="acceptTOS"'& @CRLF & _
''& @CRLF & _
'1'& @CRLF & _
'---' & $boundary & @CRLF & _
'Content-Disposition: form-data; name="upload"'& @CRLF & _
''& @CRLF & _
'Hochladen'& @CRLF & _
'---' & $boundary & "--" & @CRLF & @CRLF
$contentlength = StringLen($sPost)+BinaryLen($file)+StringLen($spost2)
ConsoleWrite($contentlength&@CRLF)
$sPacket = 'POST /upload/ HTTP/1.1' & @CRLF & _
'Host: 250kb.de' & @CRLF & _
'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)' & @CRLF & _
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' & @CRLF & _
'Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3' & @CRLF & _
'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7' & @CRLF & _
'Keep-Alive: 300' & @CRLF & _
'Content-Type: multipart/form-data; boundary=-' & $boundary & @CRLF & _
'Connection: keep-alive' & @CRLF & _
'Content-Length: ' & $contentlength & @CRLF & @CRLF & $sPost
TCPStartup()
If @error Then Return SetError(1, 0, "")
$iSocket = TCPConnect(TCPNameToIP('250kb.de'), 80)
If @error Then Return SetError(2, 0, "")
TCPSend($iSocket, $sPacket)
TCPSend($iSocket, $file)
TCPSend($iSocket, $spost2)
If @error Then Return SetError(3, 0, "")
Do
$sRecv = TCPRecv($iSocket, 1024)
Until $sRecv <> ""
Do
$sRecv &= TCPRecv($iSocket, 1024)
Until @error Or StringInStr($sRecv, '</html>')
TCPCloseSocket($iSocket)
TCPShutdown()
FileWrite(FileOpen(@ScriptDir & '\upload.html', 10), '<pre>'&$sRecv&'</pre>')
FileWrite(FileOpen(@ScriptDir & '\package.html', 10), '<pre>'&$sPacket&$file&$spost2&'</pre>')
EndFunc ;==>test
test()
Alles anzeigen
geholfen hat mir dieser Post:
https://www.autoitscript.com/forum/topic/64…ent-913144_wrap
trotzdem Danke an den ein oder anderen der einen Gedanken an mich verschwendet hat