$files = array('file1' => '@'.$filename);
$ch = curl_init("https://...");
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-type: multipart/form-data"));
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $files);
$response = curl_exec($ch);
Ошибка в первой строке. Собака '@' перед именем файла устарела с версии 5.5.0.
curl_setopt(): The usage of the @filename API for file uploading is deprecated.
Please use the CURLFile class instead in
Но если убрать её то файл не передаётся, в доках пишут использовать CURLFile вместо неё. Попытки сделать:
$myfile = curl_file_create($filename,'image/jpg','testpic');
$files = array('file1' => $myfile );
Или
$files = new CURLFile($filename);
Что бы потом $files передать в CURLOPT_POSTFIELDS успехом не увенчались, файл тогда не педаётся, от другого сервера приходит ошибка