Curl PHP PUT request changes file content(CURL PHP PUT请求更改文件内容)
本文介绍了CURL PHP PUT请求更改文件内容的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在我的一个脚本中使用了带有curl php的PUT请求,通过REST API将文件上传到外部文件存储库。但是,上载的文件在文件的开头和结尾都包含有关Content-Disposal、Content-Type和一些字母数字代码的信息,除非再次手动结束,否则将使文件毫无用处。
不必要的开销如下:
-e876c4b8eee91562内容配置:表单数据;名称="test_file";文件名="test_3.xlsx"内容类型: 应用程序/八位字节流
我用来做请求的代码是:
$ch = curl_init($upload_url);
$cfile = new CURLFile($file_realpath, 'application/octet-stream', $base_file_name);
$data = array ('test_file' => $cfile);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Accept:application/json',
'Content-Type:application/octet-stream',
));
b2share_ignore_certificates($ch);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
$http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$headerSent = curl_getinfo($ch, CURLINFO_HEADER_OUT);
curl_close($ch);
我不能将请求更改为POST,因为另一端的rest API需要PUT请求。有什么办法摆脱管理费用吗?
推荐答案
正常。我在这里找到了这个问题的答案: PHP Curl post a file without header
因此更改行
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
至
curl_setopt($ch, CURLOPT_POSTFIELDS, file_get_contents($file_realpath));
修复了该问题。这可能不是一个非常"干净"的解决方案,但它是有效的。不过,我很高兴听到更好的解决方案。
这篇关于CURL PHP PUT请求更改文件内容的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
织梦狗教程
本文标题为:CURL PHP PUT请求更改文件内容


基础教程推荐
猜你喜欢
- 如何在 Laravel 中使用 React Router? 2022-01-01
- 有什么方法可以用编码 UTF-8 而不是 Unicode 返回 PHP`json_encode`? 2021-01-01
- Cron Jobs 调用带有变量的 PHP 脚本 2022-01-01
- 在PHP中根据W3C规范Unicode 2022-01-01
- YouTube API v3 点赞视频,但计数器不增加 2022-01-01
- 如何在 Laravel 5.3 注册中添加动态下拉列表列? 2021-01-01
- 如何替换eregi() 2022-01-01
- PHP 类:全局变量作为类中的属性 2021-01-01
- PHP PDO MySQL 查询 LIKE ->多个关键词 2021-01-01
- 学说 dbal querybuilder 作为准备好的语句 2022-01-01