0

我对 PHP 有点陌生,所以我需要一些帮助。

我有一个在 Tomcat 7 上运行的 Java Servlet,它公开了一个接收 Wav 文件的 API。我在 Servlet 中所做的是从 request.getInputStream(); 并将其保存到文件中。

使用 fiddler 我会调用 API(在请求正文中使用这个 <@INCLUDE C:\wavlocation\2.wav @>),它会正确保存文件。现在我在 PHP 中有一个脚本,它使用 curl 调用这个 API,但由于某种原因,它向数据(主体的输入流)添加了更多信息。

这是正确的 Wav 文件在文本编辑器中的样子:

RIFFd¯ WAVEfmt      @¬  €&gt;  [1]  data@¯ çÿ×ÿïÿ÷ÿÿÿ ÿÿ÷ÿÿÿ ÿÿïÿ ' 7 7 _ ? /  ÿÿ…

这是从我的 servlet 中保存 wav 文件的方式:

------------------------------4564fc26ec61
Content-Disposition: form-data; name="file_box"; filename="/var/www/recordings/1ab26427-0b9e-428e-8730-9fd6076c52e7.wav"
Content-Type: application/octet-stream

RIFFd¯ WAVEfmt      @¬  €&gt;  [1]  data@¯ çÿ×ÿïÿ÷ÿÿÿ ÿÿ÷ÿÿÿ ÿÿïÿ ' 7 7 _ ? /  ÿÿ¬…

正如您所看到的,由于某种原因,PHP curl 向我不需要的数据添加了更多信息。我只想保存 wav 文件的数据。

请帮助我:)提前谢谢!

4

1 回答 1

0

看起来,由于您缺乏细节(例如没有代码显示您所做的事情或 API 的确切要求是什么),您似乎正在做多部分表单,而服务器端希望您这样做发送一个没有多部分内容的更“纯”的 POST。

但实际上,如果您能告诉我们更多细节,我们可以更确定地回答。

于 2013-03-24T15:13:35.077 回答