我在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);
}
奇怪的是,代码回应了“成功”。但是我没有发现上面的代码发生了数据库更新,即使“成功”被回应。
有人可以帮我找到这个问题吗?
答案 0 :(得分:1)
这是因为您提交原始CSV数据,而未将其编码为field = value对作为表单发布数据。处理此问题的最简单方法是在服务器上使用:
$csvfile = file_get_contents("php//input");