PHP卷曲文件上传多部分边界

时间:2013-03-05 11:57:32

标签: php file curl upload boundary

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

我在网上看到的所有内容都表明这应该有效,并且设置标题内容类型是不必要的,但是当我删除内容类型时,我收到此错误:

“请求不包含multipart / form-data或multipart / mixed流,内容类型标头为null”

任何想法?提前谢谢

1 个答案:

答案 0 :(得分:0)

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