Массив к строке уведомления у вас есть следующий код:
$fields = array(
'title'=>$title,
'content'=>$content,
'category'=>$category,
'attachment'=>$_FILES['attachment']
);
curl_setopt($this->ch, CURLOPT_POSTFIELDS, $fields);
не потому, что вы передаете массив в качестве 3-го параметра curl_setopt: это потому, что вы передаете массив для attachment
.
Если вы хотите передать файл таким способом, вы должны передать его абсолютный путь, предварительно ожидая @
перед ним:
$fields = array(
'title'=>$title,
'content'=>$content,
'category'=>$category,
'attachment'=> '@' . $_FILES['attachment']
);
curl_setopt($this->ch, CURLOPT_POSTFIELDS, $fields);
(Предполагается, что $_FILES['attachment']
содержит полный путь к вашему файлу - вы можете изменить этот код, чтобы он использовал правильные данные, если необходимо)
В качестве ссылки, цитируя страницу справочника curl_setopt
, для опции CURLOPT_POSTFIELDS
:
Полные данные для отправки в HTTP-операции «POST».
Чтобы опубликовать файл, добавьте к имени файла @
и используйте полный путь.
Это может быть передано в виде строки с кодировкой urlen, например, 'para1=val1¶2=val2&...'
, или в виде массива с именем поля в качестве ключа и данными поля в качестве значения.
Если значение является массивом, заголовок Content-Type
будет установлен на multipart/form-data
.