Curl Не работает, чтобы загрузить файл на сервер

Я пытаюсь загрузить файл на сервер с помощью Api. И он успешно работает на локальном хосте, он работает нормально, я могу легко загрузить файл на сервер.
Но когда мой код отправляется на сервер, он не загружается. Я даю разрешение на чтение и запись в папку, откуда я загружаю изображения или файлы.
это мой код 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

2

Другие решения

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

1

По вопросам рекламы [email protected]