同步新浪Error: 40009:Error: system error, does multipart has image?解决方案

使用thinksns同步图片微博到新浪微博出现的问题
Error: 40009:Error: system error, does multipart has image?
经过一步一步测试,最终将问题定位到了 addons/plugins/Login/lib/_OAuth/ 下面的 oauth.php 这里面在处理图片的时候出现里错误,错误的行数是 889 多行左右,看下面代码 其实是个foreach 循环问题


foreach($params as $parameter => $value)
            {
                //if( $parameter == 'pic' && $value{0} == '@' )
                if(in_array($parameter, array("pic", "image")))
                {
                    //
                    // $tmp = 'E:\iweibo_proj\trunk\1.txt';
                    // $url = ltrim($tmp,'@');
                    // $content = file_get_contents( $url );
                    // $filename = reset( explode( '?' , basename( $url ) ));
                    // $mime = self::get_image_mime($url); 


                    //$url = ltrim( $value , '@' );
                    $content = file_get_contents( $value );
                    $filename = reset( explode( '?' , basename( $value ) ));
                    $mime = self::get_image_mime($value); 




                    $multipartbody .= $MPboundary . "\r\n";
                    $multipartbody .= 'Content-Disposition: form-data; name="' . $parameter . '"; filename="' . $filename .
                     '"' . "\r\n";
                    $multipartbody .= 'Content-Type: ' . $mime . "\r\n\r\n";
                    $multipartbody .= $content . "\r\n";
                }
                else
                {
                    $multipartbody .= $MPboundary . "\r\n";
                    $multipartbody .= 'Content-Disposition: form-data; name="' . $parameter . "\"\r\n\r\n";
                    $multipartbody .= $value . "\r\n";


                }
            }


这段代码需要修改
加上了一个判断


if($sync == 'qq'){
            
            foreach($params as $parameter => $value)
            {
                //if( $parameter == 'pic' && $value{0} == '@' )
                if(in_array($parameter, array("pic", "image")))
                {
                    //
                    // $tmp = 'E:\iweibo_proj\trunk\1.txt';
                    // $url = ltrim($tmp,'@');
                    // $content = file_get_contents( $url );
                    // $filename = reset( explode( '?' , basename( $url ) ));
                    // $mime = self::get_image_mime($url); 


                    //$url = ltrim( $value , '@' );
                    $content = file_get_contents( $value );
                    $filename = reset( explode( '?' , basename( $value ) ));
                    $mime = self::get_image_mime($value); 




                    $multipartbody .= $MPboundary . "\r\n";
                    $multipartbody .= 'Content-Disposition: form-data; name="' . $parameter . '"; filename="' . $filename .
                     '"' . "\r\n";
                    $multipartbody .= 'Content-Type: ' . $mime . "\r\n\r\n";
                    $multipartbody .= $content . "\r\n";
                }
                else
                {
                    $multipartbody .= $MPboundary . "\r\n";
                    $multipartbody .= 'Content-Disposition: form-data; name="' . $parameter . "\"\r\n\r\n";
                    $multipartbody .= $value . "\r\n";


                }
            }
        }else{
        
        
            foreach ($params as $parameter => $value) { 


//if( $parameter == 'pic' && $value{0} == '@' )
if( in_array($parameter,array("pic","image")) && $value{0} == '@' )
{
$url = ltrim( $value , '@' );
$content = file_get_contents( $url );
$filename = reset( explode( '?' , basename( $url ) ));
$mime = self::get_image_mime($url); 


$multipartbody .= $MPboundary . "\r\n";
$multipartbody .= 'Content-Disposition: form-data; name="' . $parameter . '"; filename="' . $filename . '"'. "\r\n";
$multipartbody .= 'Content-Type: '. $mime . "\r\n\r\n";
$multipartbody .= $content. "\r\n";
}
else
{
$multipartbody .= $MPboundary . "\r\n";
$multipartbody .= 'content-disposition: form-data; name="'.$parameter."\"\r\n\r\n";
$multipartbody .= $value."\r\n";


}
            }
        
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值