PHP CURL如何处理上传内存中文件,避免磁盘IO开销

普通的CURL上传磁盘文件的方式

发送方 send.php的代码如下:

<?php
$target_url = "http://localhost/upload.php";
$filename = realpath("test.txt");
/*
 * 第一种写法,但是在5.5以上版本不推荐使用
 * @$filename 是文件路径,必须有
 * filename=test.txt 是接收方收到的文件名,为空时 则取 filename 文件路径中的 basename部分
 * type=text/plain 文档类型,可以为空
 */
/*
$post_data = array(
    'extra_info' => '123456',
    'file_contents' => "@$filename;filename=test.txt;type=text/plain",
);
*/
/*
 * 第二种写法,推荐新版本php中使用
 * CURLFile参数解释
 * @$filename 需要上传的文件,建议使用绝对路径
 * @$mimetype: 默认是 application/octet-stream,此处留空
 * @$postname: 接收方$_FILES数组中的文件名,此处为 test.txt
 */
$file = new CURLFile($filename, '', 'test.txt');
$post_data = array(
    'extra_info' => '123456',
    'file_contents' => $file,
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $target_url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$result = curl_exec($ch);
curl_close($ch);
echo $result;

处理上传文件的代码upload.php示例:

<?php
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值