• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

CURL模拟客户端 post语音文件问题,求大神指教

php 搞代码 4年前 (2022-01-23) 17次浏览 已收录 0个评论
文章目录[隐藏]

我需要从php模拟客户端发送语音文件(arm格式)到服务器端PostStream.aspx页面,出现问题,用方法一指定路径发送过去会比原语音文件稍大,aaa.amr:
——————————fa24ee50a8c6
Content-Disposition: form-data; name=”upimg”; filename=”aaa.amr”
Content-Type: application/octet-stream
。。。语音文件编码。。。
—————–fa24ee50a8c6–

我用记事本打开aaa.amr后发现多了Content-Disposition:XXX和Content-Type:XXX 这些东西,那么这个语音文件肯定不能播放

这是我的代码
方法①:

 $file = array("audio"=><i>*本5文来源gaodai$ma#com搞$$代**码)网@</i><img>搞代码gaodaima</img>"@E:/POSTSTREAM/s.amr");//文件路径,前面要加@,表明是文件上传.            $curl = curl_init("http://xxx.xxx.xxx.xxx:xxx/ddppls/PostStream.aspx?pack={1411}{615044}{7348}{534310}");            curl_setopt($curl, CURLOPT_HEADER, 0);                          curl_setopt($curl,CURLOPT_POST,1);            curl_setopt($curl,CURLOPT_POSTFIELDS,$file);            $response= curl_exec($curl);           curl_close($curl);

回复讨论(解决方案)

方法一是curl发送是指定路径,我用方法②直接发流过去却出现HTTP/1.1 302 Found 这个问题,文件直接没发过去
方法②代码:

         $data = file_get_contents ( 'php://input' );         $ch = curl_init();          curl_setopt($ch, CURLOPT_URL, "http://xxx.xxx.xxx.xxx:xxx/ddppls/PostStream.aspx?pack={1411}{615044}{7348}{534310}");        curl_setopt($ch, CURLOPT_HEADER, 1);           curl_setopt($ch , CURLOPT_POST , 1);          curl_setopt($ch , CURLOPT_POSTFIELDS , $data);         $response=curl_exec($ch);           curl_close($ch); 

现在我想的是 方法①发过去不要在语音文件加上Content-Disposition:XXX和Content-Type:XXX 这些东西 发的时候是啥样 发过去就是啥样
是不是要设置curl_setopt哪个参数,不让header信息写到文件流里
求大神指教啊
急死了 在线等

方法一把header那句去掉再试试

可以试试 socket

牛,居然可以POST语音文件,如果文件太大咋办?


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:CURL模拟客户端 post语音文件问题,求大神指教
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址