2016-02-11 2 views
0

Я пытаюсь загрузить файл на сервере, используя Api. И он успешно работает на локальном хосте, он отлично работает, я могу легко загрузить файл на сервер. Но когда мой код переходит на сервер, он не получает uploaded.I Дает чтение права на запись в папку, откуда я получаю изображения или файлы. это мой локон код:Curl Не работает, чтобы загрузить файл на сервер

$c = curl_init(); 
     curl_setopt($c, CURLOPT_URL, $url); 
     curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); 
     if($api_type == 2){ 
      //$mm = array("message" => $message); 

      $message = str_replace("\n", "\\n", $message); 
      $message = '{"message":"'.$message.'"}'; 

      curl_setopt($c, CURLOPT_HTTPHEADER, array(
      'Content-Type: application/json', 
      )); 
      curl_setopt($c, CURLOPT_POST, 1); 
      curl_setopt($c, CURLOPT_POSTFIELDS,$message); 
     } 
     if($api_type == 3 & $attachment != NULL){ 
      $data = array('file' => '@'.self::basePath().'/../user_uploads/hipchat_image/'.$attachment); 
      curl_setopt($c, CURLOPT_HTTPHEADER, array(
      'Content-Type: multipart/related', 
      )); 
      curl_setopt($c, CURLOPT_POST, 1); 
      curl_setopt($c, CURLOPT_POSTFIELDS,$data); 
     } 
     return curl_exec($c); 

ответ

1

Вы можете попробовать ...

curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false); 

В зависимости от PHP версии, это по умолчанию для false в PHP 5.5 и true в 5.6+ ... так что проверить локальная и веб-серверная версия PHP.

См: http://php.net/manual/en/function.curl-setopt.php

1

PHP 7 удаляет этот параметр curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false); интерфейс CURLFile должен использоваться для загрузки файлов.

Вы можете написать код этого

$data = array('file'=>new CURLFile('/file/path')); 

http://php.net/manual/en/function.curl-setopt.php См

Смежные вопросы