Это массив данных, которые я хочу отправить на удаленный сервер.PHP Замечание: Преобразование массива в строковое преобразование при использовании CURL для отправки данных на удаленном сервере
Array
(
[petTitle] => test
[petType] => 2
[breedtype] => dsfsdf
[dateOfBirth] => 14 Apr 2016
[postcode] => 390015
[isPriceNegotiable] => False
[price] => test
[isPublished] => 1
[petQualities] => 2
[petDescription] => test
[username] => [email protected]
[file] => Array
(
[0] => Array
(
[name] => Desert.jpg
[type] => image/jpeg
[tmp_name] => D:\xampp\tmp\php1F32.tmp
[error] => 0
[size] => 845941
)
[1] => Array
(
[name] => Koala.jpg
[type] => image/jpeg
[tmp_name] => D:\xampp\tmp\php1F62.tmp
[error] => 0
[size] => 780831
)
)
)
Я использую cURL
. Однако, когда я отправляю этот массив с использованием CURLOPT_POSTFIELDS
. он генерирует уведомление «Уведомление PHP: преобразование строки в строку».
Я использую примерно так: CURLOPT_POSTFIELDS => $data
. Пожалуйста, обратитесь к заявлению на скручивание ниже:
$headers = array("Content-Type:multipart/form-data");
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => self::url,
CURLOPT_HEADER => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_ENCODING => "",
CURLOPT_TIMEOUT => 30,
CURLOPT_POST => 1,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => $data,
));
$response = curl_exec($curl);
с этим запросом Я могу опубликовать текстовые данные. Но почему-то я не могу загрузить изображение и добавить запись в базу данных.
Любая помощь в этом будет высоко оценена.
Загрузка файлов не работает таким образом. Читайте о 'CURLOPT_POSTFIELDS' в [документации] (http://php.net/manual/en/function.curl-setopt.php). В нем объясняется, как загружать файлы. – axiac
Возможный дубликат http://stackoverflow.com/questions/5224790/curl-post-format-for-curlopt-postfields – awiebe
@awiebe Это не дубликат этого вопроса. Уведомление инициируется, потому что массив, переданный в 'CURLOPT_POSTFIELDS', является многоуровневым и должен иметь только один уровень (или, может быть, два, но значения на втором уровне не должны быть массивами). Но массив неправильный, в первую очередь. Плакат хочет загрузить файл, и для этой цели значение поля 'file' вообще не помогает. – axiac