2010-06-08 4 views
0
I'm transferring files from an existing http request using cURL like so... 

    $postargs = array(
    'nonfilefield' =>'nonfilevalue',   
    'fileentry' => '@'.$_FILES['thefile']['tmp_name'][0] 
); 

$ch = curl_init('http://localhost/curl/rec.php'); 
curl_setopt($ch,CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); 
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch,CURLOPT_POST,TRUE); 
curl_setopt($ch,CURLOPT_POSTFIELDS,$postargs); 
curl_exec($ch); 
curl_close($ch); 

이 작업을 수행 할 수있는 유일한 방법은 전송하지 않고 tmp_name을 사용하는 것입니다. 그러나 나중에 파일 이름을 지정하려는 경우 이름 값이 손실됩니다.파일 전송을 위해 cURL을 사용하는 파일 이름 유지

보통 $ _FILES 배열을 보존하는 방법은 일반적으로 말리지 않고 그대로 할 수 있습니까? 또한 스크립트에서 파일 필드 배열을 사용하고 있으므로 현재 다차원 배열을이 단일 차원으로 변환해야합니다.

답변

0

move_uploded_file()을 사용하여 원래 이름으로 파일의 이름을 바꿀 수 있습니다.

move_uploded_file($_FILES['thefile']['tmp_name'][0], $your_uploads_dir.'/'.$_FILES['thefile']['name'][0]); 
$postargs = array(
'nonfilefield' =>'nonfilevalue',   
'fileentry' => '@'.$your_uploads_dir.'/'.$_FILES['thefile']['name'][0]); 
0

신경 끄시 고,이 충분합니다 ...

$postargs = array(
     'nonfilefield'=>'nonfilevalue',      
     $_FILES['thefile']['name'][0] => '@'.$_FILES['thefile']['tmp_name'][0] 
    ); 
관련 문제