langziyang 发表于 2011-4-6 21:11:48

ci + ckeditor + ckfinder 的上传路径问题

本帖最后由 langziyang 于 2011-4-6 21:32 编辑

我是用的JS调用。ckeditor和ckfinder是放在与index.php同目录的js目录下的。



view中这样写的
先在头部调用:

<script charset="utf-8" src="<?php echo base_url(); ?>js/ckeditor/ckeditor.js" type="text/javascript"></script>
<script charset="utf-8" src="<?php echo base_url(); ?>js/ckfinder/ckfinder.js" type="text/javascript"></script>




然后是:

<textarea id="post_area" cols="85" rows="30" name="content" ></textarea>
                        <script type="text/javascript">
                            CKEDITOR.replace( 'post_area',
                            {
                              filebrowserBrowseUrl : '<?php echo base_url();?>js/ckfinder/ckfinder.html',
                              filebrowserImageBrowseUrl : '<?php echo base_url();?>js/ckfinder/ckfinder.html?type=Images',
                              filebrowserFlashBrowseUrl : '<?php echo base_url();?>js/ckfinder/ckfinder.html?type=Flash',
                              filebrowserUploadUrl :
                                    '<?php echo base_url();?>js/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files¤tFolder=/archive/',
                              filebrowserImageUploadUrl :
                                    '<?php echo base_url();?>js/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images¤tFolder=/cars/',
                              filebrowserFlashUploadUrl : '<?php echo base_url();?>js/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash'
                            }
                        );
                        </script>





最后修改ckfinder下的config.php 为


function CheckAuthentication()
{

return true;
}




最后一步是修改上传路径:
$baseUrl =‘’;
因为我的app是在localhost/ci中的,如果我的$baseUrl写成:$baseUrl='images' 的话,上传的图片直接上传到localhost去了,而不是上传到
localhost/ci/images内。

我本意是想上传到ci根目录下的images中。

还有一个问题是:直接上传的时候提示文件夹不存在。浏览服务器的时候用上传就可以…………………………

请问要怎么处理

Hex 发表于 2011-4-7 00:58:38

$baseUrl 建议写成相对路径,这个要看相对谁。
CI 里的相对路径都相对于 index.php
ck 就不清楚了。

smartweb 发表于 2011-4-7 09:54:54

ckfinder里定义config.php or config.js

langziyang 发表于 2011-4-7 13:00:31

ckfinder里定义config.php or config.js
smartweb 发表于 2011-4-7 09:54 http://codeigniter.org.cn/forums/images/common/back.gif

我定义了config.php   本来上传文件是要放在localhost/ci/images/下的,结果直接放在了localhost下。也就是说CI程序目录不对

valentine7y 发表于 2011-8-7 02:01:23

本帖最后由 valentine7y 于 2011-8-7 02:01 编辑

langziyang 发表于 2011-4-7 13:00 static/image/common/back.gif
我定义了config.php   本来上传文件是要放在localhost/ci/images/下的,结果直接放在了localhost下。也就 ...
在core/php ckfinder.php里面也有路径指定的,你看看你是不是覆盖了

策策啃鸡腿 发表于 2012-2-22 13:07:33

本帖最后由 策策啃鸡腿 于 2012-2-22 13:09 编辑

一:无法解析到正确目录
要求CK编辑器中增加文件上传的功能,其实是非常简单地加载一个CKfinder即可,可是别忘了CI用的路由器如果非$_GET型,你的URL就会使
域名/index.php/控制器/函数/参数 ,你会发现CKfinder很上传文件时,它将会将index.php/控制器/函数/参数 等作为你的目录,这样当然无法找到正确的脚本文件。
注意,如果你的CI开启了$_GET路由,即url形式为 域名/c= 控制器&f= 函数 的话,不必修改,
修改方法:
ckfinder/core/connector/ckfinder_php5.php 文件, 找到SetupCKEditorObject()函数在
if ( isset($url) && $url != ‘/’ ){}内部用
//正则去除$_SERVER[ 'REQUEST_URI' ]index.php之后的内容
$real_url = preg_replace("|(.*)/index.php/(.*)|i", "$1/", $_SERVER[ 'REQUEST_URI' ]);
$url = substr( $real_url, 0, strrpos( $real_url, '/' ) + 1 ) . $url ;

来替换即可

二:config.php中的上传路径
一般而言,我们的程序都是本地测试后上传到服务器,本地的上传路径是已知的,而服务器可就不一定知道了,而且即使知道,一旦程序的路径有所变动,你的CKfinder还要重新配置,所以,一般而言,我都是用以下代码替代config.php中
$baseUrl那一行。

//var_dump($_SERVER['PHP_SELF']);
$right_ulr = explode('/',$_SERVER['PHP_SELF']);
$len = count($right_ulr);
for($i=0;$i<6;$i++)
    unset($right_ulr);
//var_dump($right_ulr);
$baseUrl = implode('/', $right_ulr).'/upload/pic/';

解释下代码
在for语句中$i<6中的6是指
ckfinder/core/connector/php中的connector.php
离网站根目录的目录数量,这个得依据你的ckfinder在网站逻辑根目录的路径决定
循环1:去除connector.php
循环 2:去除php
循环 3:去除connector
循环 4:去除core
循环 5:去除ckfinder
循环 6:去除ckfinder所属的plugins目录(这里看你自己的网站目录咯)

文件夹权限
/upload/pic/是指放在我网站根目录的upload/pic/文件夹下,注意权限777(win7允许完全控制)

这样,你的CI就能畅通无阻的享受ckfinder,而不必担心恼人的路径问题了

liya22315 发表于 2012-9-20 19:17:21

策策啃鸡腿 发表于 2012-2-22 13:07 static/image/common/back.gif
一:无法解析到正确目录
要求CK编辑器中增加文件上传的功能,其实是非常简单地加载一个CKfinder即可,可是 ...

第二种方法已借用;P
可以去看看我在CI中集成的ckeditor 和 ckfinder的使用方法:o
传送门:http://codeigniter.org.cn/forums/forum.php?mod=viewthread&tid=14216
页: [1]
查看完整版本: ci + ckeditor + ckfinder 的上传路径问题