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

前段时间研究了一天的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
        $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; 
}


希望对大家有帮助!
另外还有个小知识点:
如果想在上传文件时,放入相应的文件夹下,如图:
关于Kindeditor在SAE上传图片和管理图片的解决办法(php)

那么在以下代码中,$new_file_name=" 20141106/".file_name;这样就可以将文件放在了 20141106这个文件夹下了。
 $s = new SaeStorage();
  $r = $s->upload( $domain , $new_file_name , $tmp_name);

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29774965/viewspace-1335653/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29774965/viewspace-1335653/

# KindEditor 变更记录# ver 3.4.3 * BUG: 修改了重复编辑超级链接时每次都添加&的问题。 * BUG: 修改了在IE上右键菜单没有复制、剪切项目的问题。 * BUG: 修改了在IE上没有格式化<font color=#000>代码的问题。 * BUG: 修改了PHP上传程序日期格式不正确的问题。 * BUG: 修改了在IE上代码模式下全屏本地URL自动变成绝对URL的问题。 * BUG: 修改了在代码模式下KE.util.setFullHtml函数不显示HTML内容的问题。 * 改善: 弹出框未指定任何按钮(yesButton, noButton, previewButton)时,不显示底部DIV。 ver 3.4.2 (2010-04-04) * 增加: 添加了KE.util.isEmpty函数,用于判断编辑器是否有可见内容。 * 改善: 页面很小时弹出菜单的上下位置不变。 * 改善: 插入超级链接未选中内容时插入URL文本。 * 改善: 插入超级链接的打开类型为当前窗口时删除A标签的target属性。 * BUG: 修改了在IE上HTML属性值里输入JS代码时格式出现错误的问题。 * BUG: 修改了cssPath属性为空时加载首页的问题。 * BUG: 修改了当浏览器出现滚动条并拖动调整大小时控制不住的问题。 * BUG: 修改了embed代码丢失自定义属性的问题。 * BUG: 修改了在IE上切换到代码模式后点击图标触发onbeforeunload事件的问题。 * BUG: 修改了在Firefox上光标在图片旁边时点击鼠标右键,弹出右键菜单的问题。 * BUG: 修改了在Firefox上无法修改/删除图片的超级链接的问题。 * BUG: 修改了在Webkit上有时候无法添加/修改/删除图片的超级链接的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值