Когда браузер загружает файл на сервер, он отправляет HTTP-запрос POST, содержащий содержимое файла.
Вам придется повторить это.
В PHP простейшее (или, по крайней мере, наиболее используемое) решение , вероятно, работает с curl
.
Если вы посмотрите на список опций, которые вы можете установить с помощью curl_setopt
, вы увидите это: CURLOPT_POSTFIELDS
(цитата) :
полные данные для публикации в HTTP "POST"
операция.
Чтобы опубликовать файл,
добавьте @ к имени файла и используйте
полный путь .
Это может быть
передается в виде строки, закодированной как urlencoded
'para1 = val1 & para2 = val2 & ...' или как
массив с именем поля в качестве ключа и
данные поля как значение.
Если значение
массив, заголовок Content-Type будет
быть установлен на multipart / form-data.
Не проверено, но я полагаю, что что-то подобное должно сработать, или, по крайней мере,
поможет вам начать:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/your-destination-script.php");
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, array(
'file' => '@/..../file.jpg',
// you'll have to change the name, here, I suppose
// some other fields ?
));
$result = curl_exec($ch);
curl_close($ch);
В основном вы:
- используют curl
- необходимо установить целевой URL
- означает, что вы хотите
curl_exec
вернуть результат, а не выводить его
- используют
POST
, а не GET
- публикует некоторые данные, включая файл - запишите
@
перед путем к файлу.