当前位置: 首页>編程日記>正文

SuiteCRM图片上传(自定义控制器)

SuiteCRM图片上传(自定义控制器)

当前的需求是在SuiteCRM系统中添加一个富文本编辑器,那就会涉及到上传本地图片的问题,富文本编辑器这是用的是Wangeditor,下面就开始我们的代码工作。

第一步,配置wangeditor,让它支持图片的本地上传

wangeditor配置本地上传图片很简单,官网上说的也很清楚,直接上代码。

custom/include/SugarFields/Fields/Editor/EditView.tpl

<div id='{{if empty($displayParams.idName)}}{{sugarvar key='name'}}{{else}}{{$displayParams.idName}}{{/if}}' style="width: 243%;"></div><textarea id="text1" name='{{if empty($displayParams.idName)}}{{sugarvar key='name'}}{{else}}{{$displayParams.idName}}{{/if}}' style="display: none;">{$value}</textarea><script>{literal}jQuery.browser={};(function(){jQuery.browser.msie=false; jQuery.browser.version=0;if(navigator.userAgent.match(/MSIE ([0-9]+)./)){ jQuery.browser.msie=true;jQuery.browser.version=RegExp.$1;}})();$(document).ready(function(){var textareaDom = '#{/literal}{{if empty($displayParams.idName)}}{{sugarvar key='name'}}{{else}}{{$displayParams.idName}}{{/if}}{literal}';var E = window.wangEditorvar editor = new E(textareaDom)var $text1 = $('#text1')  // 文本域editor.customConfig.onchange = function (html) {// 监控变化,同步更新到 textarea$text1.val(html)}// 配置服务器端地址editor.customConfig.uploadImgServer = 'index.php?module=aaaa_A1&action=upload';editor.customConfig.uploadFileName = 'file';editor.customConfig.uploadImgMaxSize = 3 * 1024 * 1024;editor.create()// 初始化 编辑器 的值editor.txt.html($text1.val());});{/literal}
</script>

这样的话,在我们的编辑器里就会多出一个“上传图片”tab,如下:
在这里插入图片描述

第二步,编写上传图片的后台接口

从上面的代码中,我们可以看到图片上传的接口地地为index.php?module=aaaa_A1&action=upload,这样的写法,是符合SuiteCRM的路由规则的。这里的aaaa_A1是控制器,upload是方法。
我们将控制器建在如下的目录中,SuiteCRM有自己的一套规则。

custom/modules/aaaa_A1/controller.php

<?php
if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');Class CustomAaaa_A1Controller extends SugarController
{// 编辑器内本地图片上传public function action_upload(){$file = $_FILES['file'];$name_arr = explode('.', $file['name']);$file_suffix = strtolower(end($name_arr));$file_name = self::createFileName($file_suffix);$file_size = $file['size'];$file_tmp = $file['tmp_name'];$extensions= array('jpeg', 'jpg', 'png', 'gif');// 规定可以上传的扩展名文件 if(in_array($file_suffix, $extensions) === false){echo json_encode(['errno' => 1]);die;}// 规定可以上传的文件大小if($file_size > 3 * 1024 * 1024) {echo json_encode(['errno' => 1]);die;}// 把图片从临时文件夹内的文件移动到指定目录 $fullPath = self::mkDir('Uploads', date('Y-m-d'));$fullName = $fullPath. '/'. $file_name;move_uploaded_file($file_tmp, $fullName);echo json_encode(['errno' => 0,'data' => ['http://'. $_SERVER['HTTP_HOST']. '/'. $fullName]]);die;}// 生成图片名public static function createFileName($file_suffix){$str = md5(uniqid(mt_rand(), true));$uuid  = substr($str, 0, 8). '-';$uuid .= substr($str, 8, 4). '-';$uuid .= substr($str, 12, 4);return $prefix. $uuid. '.'. $file_suffix;}// 创建目录public static function mkDir($path, $dir){$fullPath = $path. '/'. $dir;if(!is_dir($fullPath))mkdir($fullPath, 0755);return $fullPath;}	
}

这样,编辑器就可以上传本地的图片了。

最后补充一点,SuiteCRM系统在使用控制器的时候,首先会查找 custom/module/<模块名>/controller.php这个文件。如果未找到此文件,则会继续查找module/<模块名>/controller.php这个文件。要是这两个文件都没有找到,则将使用默认控制器include/MVC/Controller/SugarController.php
因为custom/module下的模块目录是你在后台添加上去的,我们为了不用多次添加上传接口,所以,我们可以把上传接口写到module目录下,在原有的控制器文件中,添加上传接口,比如原有的Home模块(目录)。


https://www.fengoutiyan.com/post/15578.html

相关文章:

  • SuiteCRM
  • autoformr31安装教程
  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機