【发布时间】:2013-03-15 09:45:59
【问题描述】:
发送错误的 mime 类型。文件类型为“video/mp4”,但“application / octet-stream”作为发送。我想发送“视频/mp4”。 卷曲选项($file = 真实路径)
$post = array('videoupload'=>'1','input_1'=>"@$file");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$post);
curl_setopt($ch, CURLOPT_INFILESIZE,(string)filesize($file));
curl_setopt($ch, CURLOPT_INFILE,fopen($file,'r'));
Http 调试器输出
------------------94a50e65d9fe 内容处置:表单数据;名称="视频上传"
1 ------------------94a50e65d9fe 内容处置:表单数据;名称=“输入_1”;文件名="1.mp4" 内容类型: 应用程序/八位字节流
我试过了
$post = array('videoupload'=>'1','input_1'=>"@$file;type=video/mp4");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$post);
curl_setopt($ch, CURLOPT_INFILESIZE,(string)filesize($file));
curl_setopt($ch, CURLOPT_INFILE,fopen($file,'r'));
curl_error 输出:
创建表单数据失败
【问题讨论】:
-
你不想
CURLOPT_HTTPHEADER吗?见:stackoverflow.com/questions/356705/… -
标头正确(Content-Type: multipart/form-data")。远程服务器检查文件mime-type($_FILES['input_1']["type"])。
-
您可能需要更新问题以使其更清晰。无论如何,您永远都不想信任
$_FILES[..]['type']- 如果您需要这样做,请尝试使用finfo之类的东西。 -
Http 调试器(Google Chrome):Content-type:multipart/form-data; tny.cz/d4a8fba5Http Debugger(Curl): Content-type:multipart/form-data; tny.cz/acd09926
-
这篇文章会帮助其他人吗?也许OP可以更新问题并更好地解释解决方案?我什至不知道我是否理解所提出的问题。