2010-07-08 2 views
1

Я пытаюсь воссоздать весь HTTP-запрос, включая данные как пост, так и файлы, однако независимо от того, что я делаю, я не могу заставить файлы работать, код, я использую ниже ...

$count=count($_FILES['photographs']['tmp_name']); 

$file_posts=array(); 

for($i=0;$i<$count;$i++) { 
    if(!empty($_FILES['photographs']['name'][$i])) {  
$_FILES['photographs']['tmp_name'][$i] = "@".$_FILES['photographs']['tmp_name'][$i]; 
    } 
} 

$post = array_merge($_POST, $_FILES); 

$ch = curl_init(); 
curl_setopt($ch,CURLOPT_URL,"http://url/to/file.php");  
curl_setopt($ch,CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); 
curl_setopt($ch,CURLOPT_HEADER,TRUE); 
curl_setopt($ch,CURLOPT_POST,TRUE); 
curl_setopt($ch,CURLOPT_POSTFIELDS,$post); 
curl_exec($ch); 
curl_close($ch); 

Я пробовал много вариантов этого, но я не могу показаться, чтобы получить файлы работать независимо от того, что, другие данные после это хорошо, однако.

+0

Могли бы вы 'print_r ($ пост);'? –

+1

Вам нужно что-то сделать после запроса? Если нет, почему бы вам просто не отменить прокси-запрос? В противном случае покажите нам, как выглядит переменная '$ post' в конце - моя догадка выглядит не очень хорошо. – Artefacto

+0

Array ([stocknum] => ABC123 [make] => MAKE [модель] => MODEL [цена] => [год] => 2002 [bodytype] => Седан [передача] => 6sp Manual [grade] => [klms] => [drivetype] => [fueltype] => PETROL [chassistype] => SEDAN [engine] => [color] => [interiorcolour] => [shortdescription] => [longdescription] => [ключевые слова] => [Доступность] => Доступно [add_vehicle] => Добавить автомобиль [фотографии] => Массив ([имя] => Массив ([0] => Winter.jpg [1] => Water lilies.jpg [2] = > Sunset.jpg [3] => [4] => [5] => [6] => [7] => [8] => [9] => [10] => [11] => [ 12] => [13] => и т. Д. – Toby

ответ

1

Проблема заключается в том, что в вашем $post имеется второй «слой» массивов.

Вам нужно сделать:

$file_posts=array(); 

for($i=0;$i<$count;$i++) { 
    if(!empty($_FILES['photographs']['name'][$i])) {  
     $file_posts['photographs'][$i] = "@".$_FILES['photographs']['tmp_name'][$i]; 
    } 
} 
Смежные вопросы