如何解决从URL发送cURL请求?
| 问候, 我正在寻找一种发送给定完整URL的curl请求的方法。我可以找到的所有示例和文档如下所示:$fullFilePath = \'C:\\temp\\test.jpg\';
$upload_url = \'http://www.example.com/uploadtarget.php\';
$params = array(
\'photo\'=>\"@$fullFilePath\",\'title\'=>$title
);
$ch = curl_init();
curl_setopt($ch,CURLOPT_VERBOSE,1);
curl_setopt($ch,CURLOPT_URL,$upload_url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,CURLOPT_POSTFIELDS,$params);
$response = curl_exec($ch);
curl_close($ch);
问题是\“ test.jpg \”文件实际上是由服务器上的脚本动态生成的(因此在文件系统上不存在)。
如何发送请求,而不是使用$ file = \“ http://www.mysite.com/generate/new_image.jpg \”
我想到的一种解决方案是使用fopen或file_get_contents()将\“ new_image.jpg \”加载到内存中,但是一旦到达这一点,我不确定如何将它作为POST发送到另一个站点
解决方法
到目前为止,最简单的解决方案是将文件写入一个临时位置,然后在cURL请求完成后将其删除:
// assume $img contains the image file
$filepath = \'C:\\temp\\tmp_image_\' . rand() . \'.jpg\'
file_put_contents($filepath,$img);
$params = array(
\'photo\'=>\"@$filepath\",\'title\'=>$title
);
// do cURL request using $params...
unlink($filepath);
请注意,我要插入一个随机数以避免出现竞争情况。如果图像不是特别大,最好在文件名中使用md5($img)
而不是rand()
,否则仍可能导致冲突。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。