2

I'm trying to send a file using PHP's CURL functions.

$postdata = curl_file_create(realpath($filename), 'text/csv', $filename);

and then

$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "$login:$password");
curl_setopt($ch, CURLOPT_VERBOSE, TRUE);

$result = curl_exec($ch);
$cinfo = curl_getinfo($ch);
$cerror = curl_error($ch);

var_dump($result);
var_dump($cinfo);
var_dump($cerror);
curl_close($ch); 

This only dumps bool(false), so I'm not getting far with the debugging. Am I POSTing the filename as a string rather than the file contents? The php script and the file to be send are in the same directory. Do I need to specify the path in a certain format?

Update: I added curl_error($ch) and figured out that the problem is a connection timeout. When running the script from my local machine it seems to be working, at least I get a 200 OK reply. Could my webhost somehow be blocking the connection?

Peter Featherstone
  • 7,835
  • 4
  • 32
  • 64
jimmy
  • 411
  • 3
  • 14

0 Answers0