У меня было трудное время, пытаясь найти решение для следующей проблемы: мне нужно использовать завиток, чтобы отправить форму на веб-сайт, однако она также должна загрузить изображение в обычное поле входного файла
<input type="file" name="image"/>
У меня есть класс, и функция завитка определяется так:
function fetch($url, $username='', $data='', $proxy=''){ $ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, true); if(isset($proxy)) { curl_setopt($ch,CURLOPT_TIMEOUT,30); curl_setopt($ch, CURLOPT_PROXY, $proxy); curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1); curl_setopt($ch, CURLOPT_PROXYPORT, $proxy); curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'proxyadmin:parola'); } curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FRESH_CONNECT,true); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/3.0 (compatible; MSIE 6.0; Windows NT 5.0)"); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_MAXREDIRS, 5); if($username) { curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie/{$username}.txt"); curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie/{$username}.txt"); } curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); if (is_array($data) && count($data)>0){ curl_setopt($ch, CURLOPT_POST, true); $params = http_build_query($data); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); } if (is_array($this->headers) && count($this->headers)>0){ curl_setopt($ch, CURLOPT_HTTPHEADER, $this->headers); } $this->result = curl_exec($ch); $curl_info = curl_getinfo($ch); $header_size = $curl_info["header_size"]; $this->headers = substr($this->result, 0, $header_size); $this->http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); $this->error = curl_error($ch); curl_close($ch); }
Кто-нибудь может мне помочь? очень потерянный