Привет из некоторое время искал способ, чтобы загрузить файл на сервер с PHP+Autoit, но не удалось найти хороший способ. Возникли проблемы на размер отправляемого файла или других проблем... Но в конце концов написал...
http://autoit-script.ru/index.php/topic,12485.0.html
Код:
$File = @ScriptDir & "\body-bg.png" ; Файл который мы будем загружать на сервер
$sHost = "host.com" ; Ваш домен на хостинге
$sFormAction = "/postdata.php" ; Форма-приемник для загрузки архива
$hfile = FileOpen($File, 16)
$sFileTypeName = StringRegExpReplace($File, '^.*\\', '')
While 1
$data = FileRead($hfile, 500000) ;500000 = 1мб
If @error Then ExitLoop
Global $Data2 = StringTrimLeft($data,2)
SendPost()
WEnd
Func SendPost()
$oRequest = ObjCreate('WinHttp.WinHttpRequest.5.1') ;Создаём COM-объект
$oRequest.Open('POST', 'http://' & $sHost & $sFormAction, 0) ;Создаём соеденение, указываем адрес страницы
$oRequest.SetRequestHeader('User-Agent', 'Mozilla/4.0 (Windows XP 5.1)') ;Указываем заголовок User-Agent
$oRequest.SetRequestHeader('Content-Type', 'application/x-www-form-urlencoded') ;Указываем заголовок Content-Type (необходимо для POST-запроса (Content-Length указывается автоматически))
$oRequest.SetRequestHeader('Host', $sHost)
$oRequest.Send('filename=' & $sFileTypeName & '&data=' & $Data2) ;отправляем запрос
$sData = $oRequest.ResponseText
;MsgBox(0, 'Data', $sData)
EndFunc
Код:
<?php
$fileName = $_POST['filename'];
$binaryData = $_POST['data'];
$fh = fopen("./$fileName", 'a+b');
fwrite($fh, pack("H*" , $binaryData));
fclose($fh);
?>
http://autoit-script.ru/index.php/topic,12485.0.html