编写代理文件上传的应用程序。我正在使用 CURL 发布文件,但有一些问题。发布到脚本是可以的,它从脚本发布到下一个服务器,这是问题所在。我不断从服务器收到此错误:
“请求被拒绝,因为没有找到多部分边界”
这是我的代码:
$post = $_POST;
// allow for file upload proxying
if( !empty( $_FILES ) ){
// add to post data
foreach( $_FILES as $name => $upload ){
$post[ $name ] = '@' . $upload[ 'tmp_name' ] . ';type=image/png';
}
}
// init curl
$ch = curl_init( $url );
// configure options
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true );
// post data
if( !empty( $post ) ){
curl_setopt( $ch, CURLOPT_POST, true );
curl_setopt( $ch, CURLOPT_POSTFIELDS, $post );
// for file uploads, multi-part
curl_setopt( $ch, CURLOPT_HTTPHEADER, array(
'Content-type: multipart/form-data;'
) );
}
// execute and get return value
$return = trim( curl_exec( $ch ) );
// cleanup
curl_close( $ch );
unset( $ch );
我在网上阅读的所有内容都表明这应该可以工作,并且设置标题内容类型是不必要的,但是当我删除内容类型时,我得到了这个错误:
“请求不包含多部分/表单数据或多部分/混合流,内容类型标头为空”
有任何想法吗?提前致谢