新浪sae平台wordpress中Buddypress插件上传头像问题

快毕业了,想给班级做个基于wordpress的博客放在SAE平台,想着大家参与方便,于是下了个buddyrpess插件。

插件装好了在SAE上用着看是没什么问题。试着创建个群组,第二步上传头像的时候问题来了。

图片怎么也裁切不了。点击裁切图片一直提示:There was a problem cropping the avatar.

搜索找到这个提示在bp-groups-screens.php文件里面的652行,bp_core_avatar_handle_crop( $args )函数调用后返回失败。

这个函数在bp-core-avatars.php文件里面,发现这个函数执行到  “if ( !file_exists( $avatar_folder_dir ) )”  这里文件不存在,返回false。直接注释掉,提交代码再次上传,提示图片上传成功。可以刷新页面,头像确实没变。

于是到storage里面检查,文件确实存在。


想想,去主题的模板找头像输出的函数,找到<div id="item-header-avatar">下面的<?php bp_displayed_user_avatar( 'type=full' ); ?>。一路跟着bp_displayed_user_avatar()函数,找到bp-core-avatars.php文件的287行

// Check for directory
	if (file_exists( $avatar_folder_dir )) {

		// Open directory
		
		if ($av_dir = opendir( $avatar_folder_dir )) {

就是这段的问题了。

做了一下修改。

// Check for directory
	if ( /*file_exists( $avatar_folder_dir )*/ true) {

		// Open directory
		
		if (/* $av_dir = opendir( $avatar_folder_dir ) */true) {
/*
			// Stash files in an array once to check for one that matches
			$avatar_files = array();
			while ( false !== ( $avatar_file = readdir( $av_dir ) ) ) {
				// Only add files to the array (skip directories)
				if ( 2 < strlen( $avatar_file ) ) {
					$avatar_files[] = $avatar_file;
				}
				echo '<script type="text/javascript">alert("'.$avatar_file.'");</script>';
			}
			
			*/
			
			
			$storage = new SaeStorage();
			$avatar_files = array();
			$avatar_folder_dir=str_replace('saestor://wordpress/','',$avatar_folder_dir);
			$avatar_files=$storage->getList('wordpress',$avatar_folder_dir);
			

			// Check for array
			if ( 0 < count( $avatar_files ) ) {

				// Check for current avatar
				foreach( $avatar_files as $key => $value ) {
					if ( strpos ( $value, $avatar_size )!== false ) {
						$temp_avatar_filename=substr($avatar_files[$key],1+strrpos($avatar_files[$key],'/'));
						$avatar_url = $avatar_folder_url . '/' . $temp_avatar_filename;
						/*echo '<script type="text/javascript">alert("'.$avatar_files[$key].'");</script>';*/
						
					}
					
				}
上传代码,浏览页面,图片显示正常了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值