KCfinder为许多用户上传图片

时间:2015-10-07 00:27:22

标签: php

我的网站允许登录用户使用CKeditor和CKFinder创建页面或博客,当然还可以从编辑器上传图像。我在许多用户中遇到问题,他们会在一个文件夹中使用相同的图像。我在StackOverflow上搜索同样的问题,我发现了这个问题: KCFinder with CKEditor - setting up dynamic folders for upload files

我认为解决方案很好,但我不是创建许多文件夹,而是考虑如何使用其用户ID的前缀来保存每个用户图像。例如,ID为10的用户将使用前缀10_xxxxx.jpg保存其图像,依此类推。

怎么做。任何机构都可以告诉我哪些文件脚本可以修改?我正在使用KCFinder V.3.12。抱歉我的英文。

$_SESSION['id'] = 10;

public function upload() {
        $config = &$this->config;
        $file = &$this->file;
        $url = $message = "";

        if ($config['disabled'] || !$config['access']['files']['upload']) {
            if (isset($file['tmp_name'])) @unlink($file['tmp_name']);
            $message = $this->label("You don't have permissions to upload files.");

        } elseif (true === ($message = $this->checkUploadedFile())) {
            $message = "";

            $dir = "{$this->typeDir}/";
            if (isset($_GET['dir']) &&
                (false !== ($gdir = $this->checkInputDir($_GET['dir'])))
            ) {
                $udir = path::normalize("$dir$gdir");
                if (substr($udir, 0, strlen($dir)) !== $dir)
                    $message = $this->label("Unknown error.");
                else {
                    $l = strlen($dir);
                    $dir = "$udir/";
                    $udir = substr($udir, $l);
                }
            }

            if (!strlen($message)) {
                if (!is_dir(path::normalize($dir)))
                    @mkdir(path::normalize($dir), $this->config['dirPerms'], true);

                $filename = $this->normalizeFilename($file['name']);
                $target = file::getInexistantFilename($dir . $filename);

                if (!@move_uploaded_file($file['tmp_name'], $target) &&
                    !@rename($file['tmp_name'], $target) &&
                    !@copy($file['tmp_name'], $target)
                )
                    $message = $this->label("Cannot move uploaded file to target folder.");
                else {
                    if (function_exists('chmod'))
                        @chmod($target, $this->config['filePerms']);
                    $this->makeThumb($target);
                    $url = $this->typeURL;
                    if (isset($udir)) $url .= "/$udir";
                    $url .= "/" . basename($target);
                    if (preg_match('/^([a-z]+)\:\/\/([^\/^\:]+)(\:(\d+))?\/(.+)$/', $url, $patt)) {
                        list($unused, $protocol, $domain, $unused, $port, $path) = $patt;
                        $base = "$protocol://$domain" . (strlen($port) ? ":$port" : "") . "/";
                        $url = $base . path::urlPathEncode($path);
                    } else
                        $url = path::urlPathEncode($url);
                }
            }
        }

0 个答案:

没有答案