Сохранение имени файла с помощью cURL для передачи файлов - PullRequest
0 голосов
/ 08 июня 2010
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, без этого он не отправит. Однако затем я теряю значение имени для того, когда я хочу назвать файл позже.

Есть ли способ сделать это, сохранив массив $ _FILES, как обычно, без curl? Я также использую массив файловых полей в своем скрипте, поэтому в данный момент мне нужно преобразовать мой многомерный массив в одно измерение, чтобы это работало

Ответы [ 2 ]

0 голосов
/ 08 июня 2010

Не важно, этого будет достаточно ...

    $postargs = array(
        'nonfilefield'=>'nonfilevalue',                     
        $_FILES['thefile']['name'][0] => '@'.$_FILES['thefile']['tmp_name'][0]
    );
0 голосов
/ 08 июня 2010

Вы можете переименовать файл с его оригинальным именем, используя 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]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...