Sending a file via HTTP PUT in PHP(在 PHP 中通过 HTTP PUT 发送文件)
问题描述
我已经挣扎了几个小时,试图弄清楚如何完成这项工作.我正在尝试通过 HTTP-PUT 将文件发送到 eXist 数据库.服务器有用户身份验证,所以我试图做这样的事情:
我有将文档放入的 URL我有 eXist DB 的用户名和密码我有需要通过PUT发送的内容
我尝试开始使用 cURL,但它会默默地失败我尝试使用 PHP 流,但一直收到错误 201/created",但实际上没有创建文件.
对此的任何帮助将不胜感激.
这是我尝试使用 PHP 流的一些示例代码
<前>$data = file_get_contents($tmpFile);$header = 数组(授权:基本".base64_encode($this->ci->config->item('ws_login') . ':' . $this->ci->config->item('ws_passwd')),内容类型:文本/xml");$params = 数组('http' => 数组('方法' => 'PUT','header' => $header,'内容' => $数据));$ctx = stream_context_create($params);$response = file_get_contents($url, false, $ctx);啊哈!在我的办公桌上与脾气暴躁的侏儒毛绒玩偶进行了一些橡皮擦"之后,我找到了解决方案:
<前>$data = file_get_contents($tmpFile);$params = 数组('http' => 数组('方法' => 'PUT','header' => "授权:基本".base64_encode($this->ci->config->item('ws_login') . ':' . $this->ci->config->item('ws_passwd')) ." 内容类型:文本/xml ",'内容' => file_get_contents($tmpFile)));$ctx = stream_context_create($params);$response = @file_get_contents($url, false, $ctx);返回($响应=='');I've been struggling for several hours trying to figure out how to get this work. I'm trying to send a file via HTTP-PUT to an eXist db. There is user authentication for the server, so I was trying to do something like this:
I have the URL where the doc is to be PUTted to I have the username and password for the eXist DB I have the content that needs to be sent via the PUT
I tried getting to work with cURL but it would fail silently I tried to use PHP streams, but kept getting "error 201/created" but no file was actually created.
Any help with this would be GREATLY appreciated.
Here's some sample code I tried using PHP streams
$data = file_get_contents($tmpFile); $header = array( "Authorization: Basic " . base64_encode($this->ci->config->item('ws_login') . ':' . $this->ci->config->item('ws_passwd')), "Content-Type: text/xml" ); $params = array( 'http' => array( 'method' => 'PUT', 'header' => $header, 'content' => $data)); $ctx = stream_context_create($params); $response = file_get_contents($url, false, $ctx);
Aha! After a little "rubber ducking" with the grumpy dwarf stuffed doll on my desk here, I figured out the solution:
$data = file_get_contents($tmpFile); $params = array( 'http' => array( 'method' => 'PUT', 'header' => "Authorization: Basic " . base64_encode($this->ci->config->item('ws_login') . ':' . $this->ci->config->item('ws_passwd')) . " Content-type: text/xml ", 'content' => file_get_contents($tmpFile) ) ); $ctx = stream_context_create($params); $response = @file_get_contents($url, false, $ctx); return ($response == '');
这篇关于在 PHP 中通过 HTTP PUT 发送文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在 PHP 中通过 HTTP PUT 发送文件
基础教程推荐
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- 在多维数组中查找最大值 2021-01-01