注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

HelloWorld

echo "Hello world !"

 
 
 

日志

 
 

关于Kindeditor在SAE上传图片和管理图片的解决办法(php)  

2015-01-28 03:13:44|  分类: 学习笔记 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

前段时间研究了一天的Kindeditor在SAE上传图片和管理图片,想必大家都碰到过在本地很正常,而在SAE上时,遇到了“上传目录没有写权限”的问题。在SAE上,文件夹是没有写权限的,不要再想着怎么去更改文件夹权限了。根据查找资料,下面我将解决方法总结一下:


1、SAE上有自己的云储存Storage,首先要开启Storage,然后新建一个domain,并命名(以下我命名为“kindeditor”)。

2、更改Kindeditor中的上传文件upload_json.php。
(1)、在require_once 'JSON.php';下面添加以下代码:
if(isset($_SERVER['HTTP_APPNAME']))
$issae = true; //是否新浪云平台
else
$issae = false;
$domain = 'kindeditor'; //图片domain名称
(2)、在{检查目录、检查目录写权限}和{创建文件夹}加上if判断,判断是否为sae,当不是SAE才执行原来的代码:if(!$issae);
(3)、{移动文件}加上判断是否为非sae,是非sae就执行原来的代码,若是sae则执行以下代码:
 $s = new SaeStorage();
  $r = $s->upload( $domain , $new_file_name , $tmp_name);
  if(!$r)
  alert("新浪云平台上传文件失败,请检查domain设置是否正确。");
  $file_url =  $s->getUrl( $domain , $new_file_name); 
以上三步就可以将图片上传到了SAE的Storage域的kindeditor中了。

3、管理所上传的图片,即Kindeditor的图片空间。修改file_manager_json.php,具体代码如下:
if(isset($_SERVER['HTTP_APPCOOKIE'])){ 
    $s=new SaeStorage(); 
    foreach($s->getList('kindeditor') as $v){  //kindeditor为domain的名称
      $list[]=explode('/', $v); 
    } 
    $path=isset($_GET['path'])?$_GET['path']:''; 
    $pathArr=explode('/', $path); 
    $ceng=count($pathArr)-1; 

    foreach ($list as $v){ 
      $str=''; 
      for($i=0;$i<$ceng;$i++){ 
        $str.=$v[$i].'/'; 
      } 
      if($str==$path){ 
        $currList[]=$v[$ceng].'{+}'.isset($v[$ceng+1]); 
      } 
    } 
    $currList=array_flip(array_flip($currList)); 

    $i=0; 
    foreach ($currList as $v){ 
      $info=explode('{+}', $v); 
      $fileAttr=$s->getAttr('kindeditor',$path.$info[0]); 

      $result['file_list'][$i]['is_dir']=strpos($info[0],'.')<1; 
      $result['file_list'][$i]['has_file']=$info[1]; 

      $extarr = array ('gif','jpg','jpeg','png','bmp'); 
      $fileinfo=pathinfo($info[0]); 
      $file_ext = strtolower ( $fileinfo ['extension'] ); 
      $result['file_list'][$i]['is_photo']=in_array($file_ext, $extarr); 

      $result['file_list'][$i]['filesize']=$fileAttr['length']; 
      $result['file_list'][$i]['filetype']=$file_ext; 
      $result['file_list'][$i]['filename']=$info[0]; 
      $result['file_list'][$i]['datetime']=date('Y-m-d H:i:s',$fileAttr['datetime']); 
      $i++; 
    } 
  $result['moveup_dir_path']=preg_replace ( '/(.*?)[^\/]+\/$/', '$1', $path ); 
    $result['current_dir_path']=$path; 
    $result['current_url']=$s->getUrl('kindeditor','').$path; 
    $result['total_count']=$i; 

    echo json_encode ( $result ); 
    exit; 
}
 
 
希望对大家有帮助!
另外还有个小知识点:
那么在以下代码中,$new_file_name="20141106/".file_name;这样就可以将文件放在了20141106这个文件夹下了。
 $s = new SaeStorage();
  $r = $s->upload( $domain , $new_file_name , $tmp_name);

 

摘自: http://blog.itpub.net/29774965/viewspace-1335653/

 

非常正确, 验证通过!!! 谢谢大神们!!!!!!!!!!

  评论这张
 
阅读(473)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017