一、本地图片上传:

1.转成base64,转换后的字符粘贴到notpadd++中看了下,有近20万个字符,所以直接没考虑

2.选择图片后调用后台方法传到服务器,保存后返回一个网络地址,传入success的回调方法,通过网络地址的方式显示。

前端配置代码如下:

images_upload_handler: (blobInfo, success, failure) => {

if (blobInfo.blob().size > 1048576) {

failure('文件体积过大')

}

// 发送到后台,传送到阿里云oss,返回上传后的网络地址

const uploadImgUrl =this.GLOBAL.WebSite + "/article/imgUpload";

var xhr, formData;

//原先用axios发文件一直不成功,参照官方文档。。第一次用XMLHttpRequest这鬼东西

xhr = new XMLHttpRequest();

xhr.withCredentials = false;

xhr.open('POST', uploadImgUrl);

formData = new FormData();

formData.append('file', blobInfo.blob());

xhr.onload = function() {

if (xhr.status != 200) {

failure('HTTP Error: ' + xhr.status);

return;

}

const result = JSON.parse(this.responseText);

if (!result || typeof result.value != 'string') {

failure('Invalid JSON: ' + xhr.responseText);

return;

}

// 后台返回json,对应的值的key是"value",所以这里为result.value

success(result.value);

}

xhr.send(formData);

}

阿里云买了个打折OSS服务器,上传OSS服务器的后台代码如下:

public static void uploadFile(MultipartFile multipartFile, String fileName) {

OSSClient ossClient = new OSSClient(AliyunOssConfig.getEndpoint(),

AliyunOssConfig.getAccessKeyId(), AliyunOssConfig.getAccessKeySecret());

try {

if (!ossClient.doesBucketExist(AliyunOssConfig.getDefaultBucketName())) {

ossClient.createBucket(AliyunOssConfig.getDefaultBucketName());

}

ossClient.putObject(AliyunOssConfig.getDefaultBucketName(), fileName,

multipartFile.getInputStream());

} catch (Exception e) {

logger.error(e,"uploadFile is error.");

} finally {

ossClient.shutdown();

}

}

上传成功后需要将阿里云OSS的文件获取路径返回给前端组件处理。具体格式为:bucketName.endpoint/fileName,

如:http://leslie1015.oss-cn-hangzhou.aliyuncs.com/1234.jpg,前端获取后传入success(url),组件将图片渲染为

package com.leslie.silk.config;

import org.springframework.beans.factory.annotation.Value;

import org.springframework.stereotype.Component;

/**

*阿里云OSS配置

/

@Component

public class AliyunOssConfig {

private static String endpoint;

private static String accessKeyId;

private static String accessKeySecret;

private static String defaultBucketName;

private static String endpointContent;

private AliyunOssConfig() {

}

public static String getEndpoint() {

return endpoint;

}

@Value("${aliyun.oss.endpoint}")

private void setEndpoint(String endpoint) {

AliyunOssConfig.endpoint = endpoint;

}

public static String getAccessKeyId() {

return accessKeyId;

}

@Value("${aliyun.oss.accessKeyId}")

private void setAccessKeyId(String accessKeyId) {

AliyunOssConfig.accessKeyId = accessKeyId;

}

public static String getAccessKeySecret() {

return accessKeySecret;

}

@Value("${aliyun.oss.accessKeySecret}")

private void setAccessKeySecret(String accessKeySecret) {

AliyunOssConfig.accessKeySecret = accessKeySecret;

}

public static String getDefaultBucketName() {

return defaultBucketName;

}

@Value("${aliyun.oss.defaultBucketName}")

private void setDefaultBucketName(String defaultBucketName) {

AliyunOssConfig.defaultBucketName = defaultBucketName;

}

public static String getEndpointContent() {

return endpointContent;

}

@Value("${aliyun.oss.endpointContent}")

public void setEndpointContent(String endpointContent) {

AliyunOssConfig.endpointContent = endpointContent;

}

}

二、桌面端富文本组件正常,移动端不显示

其实很简单。。。。愣是搞了半天

F12,切换到移动模式显示,发现是mobile/theme.js中的报错,原来是针对移动端有专门的js文件渲染,在/node_modules/tinymce/themes下存在两个目录,分别是silver和mobile,在封装组件的时候只引用了这个:

import 'tinymce/themes/silver'

加上如下引用:

import 'tinymce/themes/mobile'

手机端即可成功渲染

tinymce vue 部分工具不显示_tinymce-vue使用问题及解决记录相关推荐

  1. tinymce vue 部分工具不显示_TinyMCE:按需显示和隐藏内联工具栏

    我很确定你已经找到了你的问题的答案.由于我找到确切的答案有点困难,所以我最后做了这些. 我的TinyMCE的4.0.1版 显示: tinymce.init({ selector: "div. ...

  2. tinymce vue 部分工具不显示_2018年编程工具发展趋势

    通过关注编码的趋势,你可以了解很多关于这个世界的信息.在计算机编程界,热门的新工具常常说明人们关心什么,企业在投资什么. 今年的趋势数据表明,快速构建反应式网页和数据科学越来越重要.管理Web浏览器之 ...

  3. vue 不识别svg_vue中引用svg,vue引入svg不显示,vue引用svg配置,vue3.0+ts如何配置svg...

    注意: 如果按照下面配置正确发现svg依然无法显示可能s'v'g-sprite-loader的版本过高,重新指定版本下载npm i svg-sprite-loader@3.8.0 --save-dev ...

  4. tinymce vue 部分工具不显示_工具栏图标未在tinymce(4.0.1)文本编辑器中显示

    我正在将tinyMCE从3.4.2升级到4.0.1.一切都在当地完美.但是,当我在服务器上发布所有内容时,问工具栏加载正常,但图标显示不正确.注意:我有针对app和CDN的单独项目.我猜这是一个跨域/ ...

  5. SAP Cloud Application Programming bookshop 例子 Vue页面不能正常显示的原因分析

    我在本地用cds run 命令启动 SAP Cloud Application Programming 应用后,访问如下 url: http://localhost:4004/vue/index.ht ...

  6. ArcGIS API for JS 4.x + Vue 【1】—— 显示地图和添加点线面

    系列文章目录 [1] ArcGIS API for JS 4.x + Vue 之 显示地图和添加点线面 文章目录 系列文章目录 前言 一.显示地图 安装依赖 1. 添加模块 2. 引入CSS样式 3. ...

  7. vue实现页面权限显示_vue实现菜单权限控制

    大家在做后台管理系统时一般都会涉及到菜单的权限控制问题.当然解决问题的方法无非两种--前端控制和后端控制.我们公司这边的产品迭代速度较快,所以我们是从前端控制路由迭代到后端控制路由.下面我会分别介绍这 ...

  8. vue安装概要以及vue测试工具

    一.概述 1.安装node,去node官网 2.新建一个项目,通过npm init命令初始化,即创建一个package.json文件 3.用命令 npm install vue -g 全局安装vue( ...

  9. vue devtools面板没有显示_vue 基础入门(四)

    vue 基础入门(四) 1.全局配置 Vue.config 是一个对象,包含 Vue 的全局配置.可以在启动应用之前修改下列 property: 1.1 silent 类型:boolean 默认值:f ...

最新文章

  1. 缓存击穿!竟然不知道怎么写代码???
  2. 币圈老人李启元站队BCH,背后的原因是什么?
  3. 网络入侵检测规避工具fragrouter
  4. ACM 模板--邻接表 有向图 拓扑排序
  5. 在Delphi程序中应用IE浏览器控件
  6. mysql. Oracle创建视图,Navicat 教程:Oracle 视图
  7. public private protected
  8. 各种排序算法稳定性的总结!!!
  9. 将普通文章内容替换为微信图文消息符合的内容
  10. java通过+拼接字符串导致的无效SQL,三目运算符与+运算符结合使用时需要注意了
  11. HTML5 目前无法实现的5件事
  12. 微信扫一扫门禁开门小程序开发制作
  13. C语言学习-翁凯(第十三章笔记)
  14. SpringCloud(8)— 使用ElasticSearch(RestClient)
  15. 读《互联网:一部概念史》有感
  16. 计算机作业上海世博会,上海世博会开启城市生活新未来
  17. 怎么修改PDF文档背景
  18. 微信公众号开发——接收用户消息(图文、语言、上报位置、关注、取消关注)及自动回复
  19. javascript随机抽签程序
  20. HTML期末学生大作业-拯救宠物网页作业html+css

热门文章

  1. 使用Azure Blob存储托管Maven工件
  2. Drools 7支持DMN(决策模型和表示法)
  3. mapreduce文本排序_MapReduce:通过数据密集型文本处理
  4. 如何指南:Apache Drill入门
  5. 使用Java 8进行分组,转换和归约
  6. 古巴平台上的通用过滤器–类固醇上的excel过滤器
  7. Eclipse扩展的轻量级集成测试
  8. ClassNotFoundException:是否减慢了您的JVM?
  9. EclipseLink JPA-RS简介
  10. 从Java程序生成QR码图像