Lobochkin
@Lobochkin
PHP Bitrix Vue Laravel

Почему массив $_FILES пустой?

Загружаю картинку с помощью curl
$url = "http://lobochkin.ru/test/upload_output.php";
$cFile = "/j.jpg";

$post_data = array (
    "foo" => "barf",
    // файл для загрузки
    "file_contents" => "@" . $cFile
);
 
$ch = curl_init();
 
curl_setopt($ch, CURLOPT_URL, $url);
 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 
curl_setopt($ch, CURLOPT_POST, 1);
 
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data')); 
$output = curl_exec($ch);
 
curl_close($ch);
 
echo $output;

и вывожу на экран то что должно загрузиться
содержимое файла upload_output.php
print_r($_FILES);
print_r($_POST);

Не могу понять почему $_FILES пустой
Array ( ) Array ( [foo] => barf [file_contents] => @/j.jpg )
  • Вопрос задан
  • 402 просмотра
Решения вопроса 1
TommyV888
@TommyV888 Куратор тега PHP
-
Добавьте:
curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Путь передаваемого файла должен быть полным.
"@/j.jpg" указывает на файл в корневой директории, где его 99.9% нет.
Укажите полный путь к файлу.
В скрипте загрузки после curl_exec() пропишите echo(curl_error($ch));
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы