Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Сеть > curl enctype=multipart/form-data


Автор: neoks 23.2.2011, 19:21
Шаг вперед и два назад smile 
Столкнулся с проблемой, есть форма отправки файла.

Код

<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="upload">
</form>


Обычный пост запрос без проблем, но файл проблема.

Функция:
Код

function post_content($url, $mass = array()) {
    

$post = (isset($mass['post'])) ? $mass['post'] : '';
$cook = (isset($mass['cook'])) ? $mass['cook'] : false;
    
$usereagent       = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8)";
$user_cookie_file = ROOT_DIR.'/cookies.txt';

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

curl_setopt($ch, CURLOPT_REFERER, $url);
curl_setopt($ch, CURLOPT_ENCODING, "");
curl_setopt($ch, CURLOPT_USERAGENT, $usereagent);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);

if($post !== ''){
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    //curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "Content-Type: multipart/form-data;");
}


if($cook){
    curl_setopt($ch, CURLOPT_COOKIEJAR, $user_cookie_file);
    curl_setopt($ch, CURLOPT_COOKIEFILE,$user_cookie_file);
}

if($file){
    header("Content-type: application/octet-stream"); 
}

$content = curl_exec($ch);
           curl_close($ch);
           
return  $content;
}


Помню что нуно что то писать в хеадер, теперь не могу найти.
Знаю что $post должен быть массивом.

Сам не пойму как вообще загрузить файл?

Добавлено через 11 минут и 20 секунд
Все нашол в чем баг.  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)