Как отправить файл на сторонний сервер

M9
На сайте с 15.05.2014
Offline
79
472

Необходимо отправить файл на сторонний сервер но получаю ошибку. делаю так:

/*Array
(
[imgfile] => Array
(
[name] => TB2wRxQcSvHfKJjSZFPXXbttpXa_!!2369743095.jpg
[type] => image/jpeg
[tmp_name] => /tmp/phph4FX05
[error] => 0
=> 32856
)

)*/

$tmpfile = $_FILES['imgfile']['tmp_name'];
$filename = basename($_FILES['imgfile']['name']);
$data = array(
'imgcode' => '@'.$tmpfile.';filename='.$filename,
);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://h5api.t-b.ru.com/taobao/upload_img');
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_POST, true);
$out = curl_exec($curl);
//$out = json_decode($out);
curl_close($curl);
print_r($out);

ответ от стороннего сервера, что я не так делаю?

S
На сайте с 13.10.2014
Offline
147
#1

Там наверняка стоит проверка подлинности, поэтому надо эмулировать браузер, как минимум с поддержкой сессии и куки

JonnyB
На сайте с 23.08.2006
Offline
185
#2

Посмотрите сниффером файл отправляется или нет?

Возможно у вас отключен вывод ошибок, и вы не видите предупреждение о том, что файлы через конструкцию с @ уже нельзя отправлять. Начиная с php 5.6 нужно пользоваться классом CURLFile.

https://jonnyb.ru/ (http://jonnyb.ru/)
M9
На сайте с 15.05.2014
Offline
79
#3
JonnyB:
Посмотрите сниффером файл отправляется или нет?
Возможно у вас отключен вывод ошибок, и вы не видите предупреждение о том, что файлы через конструкцию с @ уже нельзя отправлять. Начиная с php 5.6 нужно пользоваться классом CURLFile.

CURLFile использовал все равно не работает

JonnyB
На сайте с 23.08.2006
Offline
185
#4

Посмотрите сниффером что у вас отправляет курл.

Проверьте лог ошибок.

Если по вашей части нет проблем, значит сервер не хочет по каким либо причинам принимать от вас запрос, и тут вам стоит прислушаться к тому что сказал silicoid

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий