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



我在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);
}

奇怪的是,代码与"成功"相呼应。但我没有发现上面的代码进行数据库更新,即使"成功"得到了回应。

有人能帮我在这里找到问题吗?

这是因为您提交的原始CSV数据,并没有像表单发布数据那样编码到字段=值对中。处理这一问题的最简单方法是在服务器上使用:

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

最新更新