高分求thinkphp中设置xheditor图片上传详细步骤。。。

author author     2023-05-09     189

关键词:

本人对JS一窍不通。。。希望能说简单一些。。。
从图像中如何出现“上传”按钮,如何调用upImgUrl,如何配置upload.php开始说起,感谢万分。
网上找了那些都是配置upload.php,并没有说如何调用“上传”按钮upImgUrl,我一点都不懂JS额。。。初学。。。

    先在页面上面配置获取百度配置文件地址:window.UEDITOR_CONFIG.serverUrl = xx;

    后面的就是服务器端了


    namespace Admin\\Controller;
    use Admin\\Service\\BaseService;

    class UeditorController extends BaseService
        public function _empty()
            $action = I('get.action','','htmlspecialchars');
            $callback = I('get.callback');
            $result = null;
            switch ($action) 
                case 'config':
                    $result = json_encode($this->_Config());
                    break;

                /* 上传图片 */
                case 'uploadimage':
                    /* 上传涂鸦 */
                case 'uploadscrawl':
                    /* 上传视频 */
                case 'uploadvideo':
                    /* 上传文件 */
                case 'uploadfile':
                    $result = $this->_Upload($action);
                    break;

                /* 列出图片 */
                case 'listimage':
                    /* 列出文件 */
                case 'listfile':
                    $result = $this->_list($action);
                    break;
                /* 抓取远程文件 */
                case 'catchimage':
                    $result = $this->_crawler();
                    break;

                default:
                    $result = json_encode(array(
                        'state'=> '请求地址出错'
                    ));
                    break;
            

            if (isset($_GET["callback"])) 
                if (preg_match("/^[\\w_]+$/", $_GET["callback"])) 
                    echo htmlspecialchars($_GET["callback"]) . '(' . $result . ')';
                 else 
                    echo json_encode(array(
                        'state'=> 'callback参数不合法'
                    ));
                
             else 
                echo $result;
            
        
        private function _Config()
            $CONFIG = json_decode(preg_replace("/\\/\\*[\\s\\S]+?\\*\\//", "", file_get_contents(APP_PATH .'Admin/Conf/config.json')), true);
            $CONFIG['imageMaxSize'] = UPLOAD_IMAGE_SIZE;
            $CONFIG['scrawlMaxSize'] = UPLOAD_IMAGE_SIZE;
            $CONFIG['catcherMaxSize'] = UPLOAD_IMAGE_SIZE;
            $CONFIG['videoMaxSize'] = UPLOAD_VIDEO_SIZE;
            $CONFIG['fileMaxSize'] = UPLOAD_FILE_SIZE;
            $CONFIG['scrawlUrlPrefix'] = ATTACH_URL;
            $CONFIG['imageUrlPrefix'] = ATTACH_URL;
            $CONFIG['snapscreenUrlPrefix'] = ATTACH_URL;
            $CONFIG['catcherUrlPrefix'] = ATTACH_URL;
            $CONFIG['videoUrlPrefix'] = ATTACH_URL;
            $CONFIG['fileUrlPrefix'] = ATTACH_URL;
            $CONFIG['imageManagerUrlPrefix'] = ATTACH_URL;
            $CONFIG['fileManagerUrlPrefix'] = ATTACH_URL;
            return $CONFIG;
        
        private function _Upload($action)
            $config = $this->_Config();
            $up = new \\Lib\\Extend\\Upload();
            $type = '';
            switch ($action) 
                case 'uploadimage':
                    $fieldName = $config['imageFieldName'];
                    $type = 'image';
                    break;
                case 'uploadscrawl':
                    $fieldName = $config['scrawlFieldName'];
                    $type = 'base64';
                    break;
                case 'uploadvideo':
                    $fieldName = $config['videoFieldName'];
                    $type = 'video';
                    break;
                case 'uploadfile':
                default:
                    $fieldName = $config['fileFieldName'];
                    $type = 'file';
                    break;
            
            if($type == 'base64')
                $result = $up->saveBase64($fieldName);
            else
                $result = $up->save($fieldName,$type);
            
            return json_encode($result);
        
        private function _list($action)
            $config = $this->_Config();
            switch ($action) 
                /* 列出文件 */
                case 'listfile':
                    $allowFiles = $config['fileManagerAllowFiles'];
                    $listSize = $config['fileManagerListSize'];
                    break;
                /* 列出图片 */
                case 'listimage':
                default:
                    $allowFiles = $config['imageManagerAllowFiles'];
                    $listSize = $config['imageManagerListSize'];
            
            $allowFiles = substr(str_replace(".", "|", join("", $allowFiles)), 1);

            /* 获取参数 */
            $size = isset($_GET['size']) ? htmlspecialchars($_GET['size']) : $listSize;
            $start = isset($_GET['start']) ? htmlspecialchars($_GET['start']) : 0;
            $end = $start + $size;

            /* 获取文件列表 */
            $path = UPLOAD_PATH;
            $files = $this->_getfiles($path, $allowFiles);
            if (!count($files)) 
                return json_encode(array(
                    "state" => "no match file",
                    "list" => array(),
                    "start" => $start,
                    "total" => count($files)
                ));
            

            /* 获取指定范围的列表 */
            $len = count($files);
            for ($i = min($end, $len) - 1, $list = array(); $i < $len && $i >= 0 && $i >= $start; $i--)
                $list[] = $files[$i];
            
            return json_encode(array(
                "state" => "SUCCESS",
                "list" => $list,
                "start" => $start,
                "total" => count($files)
            ));
        
        private function _getfiles($path, $allowFiles, &$files = array())
            if (!is_dir($path)) return null;
            if(substr($path, strlen($path) - 1) != '/') $path .= '/';
            $handle = opendir($path);
            while (false !== ($file = readdir($handle))) 
                if ($file != '.' && $file != '..') 
                    $path2 = $path . $file;
                    if (is_dir($path2)) 
                        $this->_getfiles($path2, $allowFiles, $files);
                     else 
                        if (preg_match("/\\.(".$allowFiles.")$/i", $file)) 
                            $files[] = array(
                                'url'=> substr($path2, strlen(UPLOAD_PATH)),
                                'mtime'=> filemtime($path2)
                            );
                        
                    
                
            
            return $files;
        
        private function _crawler()
            $config = $this->_Config();
            $fieldName = $config['catcherFieldName'];
            $up = new \\Lib\\Extend\\Upload();
            $source = I($fieldName);
            $result = array();
            foreach($source as $imgUrl)
                $item = $up->saveRemote($imgUrl);
                array_push($list, array(
                    "state" => $item["state"],
                    "url" => $item["url"],
                    "size" => $item["size"],
                    "title" => htmlspecialchars($item["title"]),
                    "original" => htmlspecialchars($item["original"]),
                    "source" => htmlspecialchars($imgUrl)
                ));
            
            return json_encode($result);
        

参考技术A 参考xheditor官网的教程,里面有很详细的使用指南。

html中设置层position:absolute;属性后上面的下拉菜单被遮挡,该怎么解决呀,求大神帮助!!

菜单设置了z-index还有.menuliposition:relative;.menuulposition:absolute;.menuulliposition:relative;给下拉菜单层加个z-index:1999;相当于是z轴上给个最大值,那么下拉层就始终是在最上面的一层,不会被遮挡。参考技术A给导航的最外层容器设置positi... 查看详情

xheditor编辑器上传图片

...功能强大。最近自己的项目也要用到编辑器,我就想起了xheditor。好多大网站都用到它~好棒!我把xheditor用于文章模块,添加和修改文章,然后保存到数据库中,用text类型存储。编辑文章避免不了图文混排,那就要考虑到如何处... 查看详情

在iphone中设置UIToolBar的背景图片

】在iphone中设置UIToolBar的背景图片【英文标题】:settingbackgroundimageofUIToolBariniphone【发布时间】:2010-04-1708:55:48【问题描述】:我想在我的iPhone应用程序中设置UIToolbar的背景图片。目前我正在使用UIColor的initWithPatternImage:进行设置... 查看详情

怎么在电脑自带的画图工具中设置用图片填满整个屏幕

如果你说的是桌面,那就直接图片右键先设置为桌面背景,再在个性化中将图片调到你想要的能铺满整个桌面的尺寸;如果你说的是画图界面,那就先把画图的底页拉满,再把图片直接拉进来,就可以随意调节大小了参考技术A... 查看详情

如何在 reactjs 中设置背景图片?

】如何在reactjs中设置背景图片?【英文标题】:Howtosetabackgroundimageinreactjs?【发布时间】:2017-12-0111:33:36【问题描述】:我有一个reactjs/webpack应用程序并尝试为bodytag设置背景图片:bodybackground:url("../images/some-background.jpg");background-... 查看详情

为啥在css中设置了宽高缩小图片后,图片变得模糊

参考技术Acss中设置图片宽高一定要等比缩放,并且图片要足够大,这样就不会变模糊 查看详情

id中设置文本绕排后怎么设置图片与文字的距离

ID中设置文本绕排后设置图片与文字的距离步骤如下:1、首先我们要新建一个文档,执行新建>文档。2、然后我们在空白的文档里插入一张图片。3、然后我们在上方的工具栏中,执行窗口>文字绕排工具。4、打开文字绕排工... 查看详情

在excel中设置图片

packagecom.smbea.demo.excel;importjava.awt.image.BufferedImage;importjava.io.ByteArrayOutputStream;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.I 查看详情

xheditor编辑器上传图片到oss(代码片段)

   前段时间,公司在项目上用到了xhEditor编辑器来给用户做一个上传图片的功能当时做的时候觉得很有意思,想想基本的用户图片上传到自己服务器,还有点小占地方;后来....然后直接上传到阿里云。接下来就是基本... 查看详情

android中设置imageview的图片充满整个布局

两种方式:  1.在代码中设置:      imageView.setScaleType.FIT_XY  2.在布局文件中设置:      android:scaleType="fitXY" 查看详情

怎样在hbuilder中设置图片路径

...术A1、首先用hbuilder软件新建一个html文件,文件的head标签中设置输入style标签。2、然后设置body的样式,给body加一张图片,设置为不重复,设置background-position属性让图片出现在右上方。3、最后该属性的前一个参数控制上下的位... 查看详情

无法在对话框中设置所需的图标

】无法在对话框中设置所需的图标【英文标题】:Unabletosetdesirediconindialogbox【发布时间】:2014-05-2809:34:56【问题描述】:我想在我的对话框的图片控件上设置一个图标。我为我的图片控件创建了一个Control变量,并尝试使用loadimag... 查看详情

如何在 JPanel 中设置背景图片

】如何在JPanel中设置背景图片【英文标题】:HowtosetabackgroundpictureinJPanel【发布时间】:2014-04-0510:10:38【问题描述】:你好,我正在使用JPanel作为我框架的容器,然后我真的想在我的面板中使用背景图片我真的需要帮助这是我到... 查看详情

如何在 Xamarin 中设置 ContentPage 的背景图像

】如何在Xamarin中设置ContentPage的背景图像【英文标题】:HowtosetbackgroundimageofContentPageinXamarin【发布时间】:2021-12-0423:26:59【问题描述】:我正在尝试在我的Xamarin应用程序上设置背景图像。我已经看过XamarinFormsContentPagebackgroundimage... 查看详情

如何在html页面中设置超链接

用Dreamweaver8.0网页制作软件很简单就能完成。如果你要在文字上做超链接可以选定要做链接的文字在DReamweaver右下方会出现你要添加的链接地址。你只要输入链接就可以了。如果是在图片上做链接方法也相同,你只要选定该图片... 查看详情

在css中设置图片的背景图,怎么设置图片纵向拉伸

css中设置背景图拉伸填充,在css2.1之前这个背景的长宽值是不能被修改的。实际的结果是只能重复显示,可以使用repeat,repeat-x,repeat-y,no-repeat这些属性来控制背景图片的显示。所以一般用作背景图片的有2类:1.是一整张大图,尺... 查看详情

如何在 Django 模板中设置背景图像?

】如何在Django模板中设置背景图像?【英文标题】:HowcanonesetabackgroundimageinaDjangoTemplate?【发布时间】:2013-07-0822:11:20【问题描述】:假设我的背景图片的网址是www.randomlink.com/static/backgroundimagesplash.jpg我查看了Pinterest主页。众所... 查看详情

vue项目中设置背景图片

在vue项目开发中,我们经常会碰到动态添加背景图片的问题,可是当我们在样式中添加了背景图片后,背景图片并不能正常的显示出来,如下css样式这个时候就要考虑使用其它方式了,node中提供了一种有效的方式来解决这个问... 查看详情