Как отправить файл через POST на php?

Есть набор параметров и файл, который нужно отправить post запросом другому серверу. Как это сделать на php?
Да, в интернете есть куча статей по этому вопросу, но не смог найти с отправкой файлов.
Параметры, которые нужно передать:
name1 = "111";
name2 = "222";
file = "filename.mp3" - это файл, который нужно отправить
  • Вопрос задан
  • 331 просмотр
Решения вопроса 1
erniesto77
@erniesto77
oop, rb, py, php, js
например если надо отправить данные и файл на mp3-server.ru/accept.php
$target = 'http://mp3-server.ru/accept.php';
$file_path = realpath('/путь/к/файлу/filename.mp3');
$post = array('name1' => '111', 'name2' => '222', 'file'=> '@'.$file_path);
 
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $target);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result=curl_exec ($ch);
curl_close ($ch);
echo $result;

на другом конце провода accept.php должен принимать данные примерно так
$uploaddir = realpath('./') . 'uploads/';
$uploadfile = $uploaddir . basename($_FILES['file']['name']);
echo '<pre>';
	if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) {
	    echo "Файл успешно загружен в папку $uploaddir \n";
	} else {
	    echo "Не удалось получить файл \n";
	}
	echo 'Информация о принятых данных';
	print_r($_FILES);
	echo "<hr>";
	print_r($_POST);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@krypt3r
curl, CURLFile
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы