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

yzt7805882 2013-04-10 12:47:18
我需要从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"=>"@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);


...全文
298 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jxdyzwh 2013-04-19
  • 打赏
  • 举报
回复
牛,居然可以POST语音文件,如果文件太大咋办?
北京不不 2013-04-10
  • 打赏
  • 举报
回复
可以试试 socket
ImN1 2013-04-10
  • 打赏
  • 举报
回复
方法一把header那句去掉再试试
yzt7805882 2013-04-10
  • 打赏
  • 举报
回复
现在我想的是 方法①发过去不要在语音文件加上Content-Disposition:XXX和Content-Type:XXX 这些东西 发的时候是啥样 发过去就是啥样 是不是要设置curl_setopt哪个参数,不让header信息写到文件流里 求大神指教啊 急死了 在线等
yzt7805882 2013-04-10
  • 打赏
  • 举报
回复
方法一是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); 

4,250

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧