Загрузка файла не работает - cURL & PHP - PullRequest
0 голосов
/ 04 июня 2011

Мой код для загрузки файла на УДАЛЕННЫЙ сервер не работает.При загрузке файла из браузера по ссылке все содержимое файла csv фиксируется в базе данных.Вот код:

function postToDB()
{
  $fp = fopen('./errorLog.txt', 'w+');
  $csvFile = fopen('./myFile.csv', 'r');
  $url="http://abc.com/UploadCSVLogin/";

  $ch=curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_TIMEOUT, 100);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
  curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt($ch, CURLOPT_USERPWD, ":password");
  curl_setopt($ch, CURLOPT_PUT, true);

  curl_setopt($ch, CURLOPT_INFILE, $csvFile);
  curl_setopt($ch, CURLOPT_VERBOSE, true);
  curl_setopt($ch, CURLOPT_STDERR, $fp);

  if (!curl_exec($ch))
     echo "Error: ".curl_error($ch);
  else
     echo "Success";
  curl_close($ch);
}

Странно, код повторяет «Успех».Но я не нахожу обновления базы данных с помощью приведенного выше кода, хотя "успех" повторяется.

Может кто-нибудь помочь мне найти проблему здесь?

1 Ответ

1 голос
/ 04 июня 2011

Это потому, что вы отправляете необработанные данные CSV, а они не кодируются в пары поле = значение, как данные публикации формы. Самый простой способ справиться с этим - просто использовать на сервере:

$csvfile = file_get_contents("php//input");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...