Как я могу отправить файл на REST-сервер без записи файла на диск с помощью PHP? - PullRequest
2 голосов
/ 09 июня 2009

Я пытаюсь отправить файл XML на сервер как часть метода POST для внутреннего API.

Вся документация PHP указывает на использование $ postVars ['file'] = '@ / path / to / file.xml' для фактической отправки файла.

Я хочу отправить файл из строки, но его все равно нужно отправить как загрузку файла, а не как строку.

Помощь

Ответы [ 2 ]

3 голосов
/ 09 июня 2009

Взгляните на эту ветку, она имеет дело с тем, что вы хотите сделать, я думаю: http://www.webmasterworld.com/php/3164561.htm

Последняя запись может быть полезна (переформатирован мной):

function do_post_request($url, $data, $optional_headers = null) { 
  $params = array('http' => array( 
    'method' => 'post', 
    'content' => $data 
  )); 

  if ($optional_headers!== null) 
    $params['http']['header'] = $optional_headers; 

  $ctx = stream_context_create($params); 
  $fp = @fopen($url, 'rb', false, $ctx); 
  if (!$fp)
    throw new Exception("Problem with $url, $php_errormsg"); 

  $response = @stream_get_contents($fp); 
  if ($response === false) 
    throw new Exception("Problem reading data from $url, $php_errormsg"); 

  return $response; 
}

В основном решение состоит в том, чтобы использовать встроенную обработку потока php для URL.

0 голосов
/ 09 июня 2009
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...