php curl 发送文件,CURL 发送文件

代码备份录——CURL 发送文件文件

说明:表单提交文件 -> laravel接收 -> curl提交给另一个服务端

html 部分

配置路由

// form 提交

Route::any("/testFile","TestController@testFile");

// form action 接收

Route::any("/testLoadFile","TestController@testLoadFile");

服务端组装CURLfile,并发送另一个服务端

public function testFile(Request $request){

$data = array(

'file'=> new \CURLFile(realpath($request->file('file')->path())),

);

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,"/testLoadFile");//此处以当前服务器为接收地址

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_TIMEOUT,10);//设置最长等待时间

curl_setopt($ch, CURLOPT_POST, 1);//post提交

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

$data = curl_exec($ch);//执行

if(curl_errno($ch)){

return curl_error($ch);

}

curl_close($ch);//释放

return json_encode($data);

}

模拟另一个服务端作为接收

public function testLoadFile(Request $request){

if ($request->hasFile('file')) {

if ($request->file('file')->isValid()){

// 上传成功

// 随机名字 . 后缀

$fileName = "other/".Date("YmdHis").substr(md5(time()),5,15).".".$request->file("file")->extension();// 需要 开启php_fileinfo 扩展 否则会报错

// 获取临时上传的路径(如果不存在本地,则方法调用完之后,会被删除)

//$fileUrl = $request->file('file')->path();

// 可选存储在本地

$fileUrl = $request->file("file")->move(__DIR__."/",$fileName);

return ($fileUrl);

}

}

return json_encode([]);

}

本作品采用《CC 协议》,转载必须注明作者和本文链接

朝着梦,踏平坎坷

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值