使用php Curl使用laravel app文件夹中的文件向外部API发布请求

时间:2016-10-26 11:22:06

标签: php curl laravel-5

我正在使用我的laravel app files文件夹中的PDF文件向外部服务器发送后API请求,该文件夹位于Laravel app文件夹中的公共文件夹下。我正在从这个文件夹发送PDF文件并获取。文件未找到错误可以有人帮忙。

$samplefile = "/var/www/html/laravel_project/public/1476505004.pdf";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://api_upload_usl/api/uploads");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS,array('myFile'=>"@$samplefile",'token'=>$token,'id'=>1));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$postResult = curl_exec($ch);
curl_close($ch);

1 个答案:

答案 0 :(得分:0)

我并不熟悉您使用curl上传文件的方式,但根据this answer

另外,你能详细说明file not found error吗?你确定这是一个PHP错误吗?可能是网络服务器告诉您,您要求的页面不存在吗?

您也没有将curl指定为帖子,也许它正在执行与端点期望不同的操作

EG:

if (function_exists('curl_file_create')) { // php 5.6+
  $cFile = curl_file_create($file_name_with_full_path);
} else { // 
  $cFile = '@' . realpath($file_name_with_full_path);
}
$post = array('extra_info' => '123456','file_contents'=> $cFile);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$target_url);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$result=curl_exec ($ch);
curl_close ($ch);