2010-07-08 37 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($後);'? – 2010-07-08 17:03:58

+1

請求後你需要做些什麼嗎?如果沒有,爲什麼不只是反向代理請求?否則,向我們展示'$ post'變量最終的樣子 - 我的猜測看起來不太好。 – Artefacto 2010-07-08 17:06:50

+0

Array [=] ABC123 [make] => MAKE [model] => MODEL [price] => [year] => 2002 [bodytype] => Sedan [transmission] => 6sp Manual [grade] => [klms] => [drivetype] => [fueltype] => PETROL [chassistype] => SEDAN [engine] => [color] => [interiorcolour] => [shortdescription] => [longdescription] => [keywords] => [可用性] =>可用[add_vehicle] =>添加車輛[照片] =>陣列([名稱] =>陣列([0] => Winter.jpg [1] => Water lilies.jpg [2] = > Sunset.jpg [3] => [4] => [5] => [6] => [7] => [8] => [9] => [10] => [11] => 12] => [13] => etc – Toby 2010-07-08 17:08:41

回答

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]; 
    } 
}