上传文件不起作用 - cURL& PHP

时间:2011-06-04 00:12:49

标签: php curl

我在REMOTE服务器上上传文件的代码似乎不起作用。从链接的浏览器上传文件时,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 个答案:

答案 0 :(得分:1)

这是因为您提交原始CSV数据,而未将其编码为field = value对作为表单发布数据。处理此问题的最简单方法是在服务器上使用:

$csvfile = file_get_contents("php//input");