1

编写代理文件上传的应用程序。我正在使用 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 );

我在网上阅读的所有内容都表明这应该可以工作,并且设置标题内容类型是不必要的,但是当我删除内容类型时,我得到了这个错误:

“请求不包含多部分/表单数据或多部分/混合流,内容类型标头为空”

有任何想法吗?提前致谢

4

1 回答 1

0

不确定到底是什么问题,但是当我发布此内容时,我正在本地工作。将代码移到实时服务器上,问题就消失了……

于 2013-03-11T18:35:45.380 回答