博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
毕业设计(十七)---发表文章(3)之- 使用ckeditor上传图片(flash)
阅读量:6202 次
发布时间:2019-06-21

本文共 4325 字,大约阅读时间需要 14 分钟。

hot3.png

在发表文章的时候,经常会使用到图片, ckeditor本身提供了这个功能,需要开启,然后再加上自己一些代码.

(上传flash和上传图片的方式一模一样,以图片为例.)

先看效果图:

先浏览服务器:

点击图片即选择

上传:

上传完毕点击确定

图像大小可调节.

实现方式:

一: a: 有关的文件, 在ckeditor文件下添加uploader文件夹,

里面的browse.jsp文件是浏览服务器时候的页面.  upload.jsp是点击上传时候进行处理的文件,

但是这里我并没有用到upload.jsp,因为我把其中处理的方法写到了 自己定义的类里面,所以upload.jsp可有可无.

b:上传处理的类

   里面的内容其实就是upload.jsp的改写.

二:首先修改自定义的ckeditor_config.js 文件,在里面加上浏览服务器和上传图片的处理方法

CKEDITOR.editorConfig = function( config ){	config.filebrowserImageUploadUrl = 'actionckeditor.action';//定义图片上传的地址, 是上图的CkeditorUploadAction.java. 	config.filebrowserImageBrowseUrl = 'ckeditor/uploader/browse.jsp?type=images';  //定义图片的 浏览服务器 窗口.		config.filebrowserFlashUploadUrl = 'actionckeditor.action';//定义flash上传的地址, 是上图的CkeditorUploadAction.java. 	config.filebrowserFlashBrowseUrl = 'ckeditor/uploader/browse.jsp?type=Flashs';//定义flash的 浏览服务器窗口			//**************************************************************	config.language = 'zh-cn';	config.filebrowserWindowWidth = '440';	config.filebrowserWindowHeight = '500';		//........省略了后面的内容..	};

三:browse.jsp  代码

<%@page import="java.io.File"%><%@ page language="java" contentType="text/html; charset=GB18030"    pageEncoding="GB18030"%>
图片浏览<% String path = request.getContextPath() + "/"; String type = ""; if(request.getParameter("type") != null)//获取文件分类 type = request.getParameter("type").toLowerCase() + "/"; String clientPath = "ckeditor/uploader/upload/" + type; File root = new File(request.getSession().getServletContext().getRealPath(clientPath)); if(!root.exists()){ root.mkdirs(); } String callback = request.getParameter("CKEditorFuncNum"); File[] files = root.listFiles(); if(files.length > 0){ for(File file:files ) { String src = path + clientPath + file.getName(); out.println("" + file.getName() + ""); } }else{ out.println("

未检测到资源。

"); } %>
四: struts.xml定义action   , class指向类CkeditorUploadAction.java

<action name="actionckeditor" class="ActionCkeditor" >

        </action>

CkeditorUploadAction代码:

@Component("ActionCkeditor")@Scope("prototype")public class CkeditorUploadAction extends ActionSupport {        private String uploadContentType;            private String uploadFileName;            private String CKEditorFuncNum;            private String CKEditor;            private String langCode;            private File upload;        //....省略set get 方法        @Override      public String execute() throws Exception {       String strUrl="";        String strPath = ServletActionContext.getServletContext().getRealPath("ckeditor/uploader/upload");          File path = new File(strPath);          if(!path.exists()){              path.mkdirs();          }          String uuid = UUID.randomUUID().toString();        String rt[] = this.getUploadFileName().split("\\.");        System.out.println(rt[1]);        uploadFileName = new String(uuid+"."+rt[1]);//解决上传中文图片、flash或含中文路径时服务器报错的问题。        String type =null;        if("jpg".equals(rt[1]) ||"png".equals(rt[1]) ||"gif".equals(rt[1]) ||"jpeg".equals(rt[1]) ||"bmp".equals(rt[1]))        {        	type = "images/";        }        if("swf".equals(rt[1]))        {        	type="flashs/";        }        String str = strPath + File.separator +type;        File file = new File(str);        if(!file.exists()){              file.mkdirs();          }         System.out.println(this.upload);        InputStream is = new FileInputStream(this.upload);                  OutputStream os = new FileOutputStream(new File(strPath + File.separator +type+ this.uploadFileName));                            try {                int len;              byte[] buffer = new byte[1024];              while ((len=is.read(buffer)) > 0) {                  os.write(buffer,0,len);              }          } catch (Exception e) {              e.printStackTrace();          } finally {              if(is!=null){                  is.close();              }              if(os!=null){                  os.close();              }          }          PrintWriter out = ServletActionContext.getResponse().getWriter();          //返回给ckeditor                  strUrl=strPath+ "\\" + this.uploadFileName ;         strUrl=  strUrl.replace('\\', '/');//这里如果不替换,会出错!!!//        System.out.println(strUrl);        out.write("");        return Action.NONE;      }  }
五:这里就做完了. 路径:是

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://my.oschina.net/wangt10/blog/508379

你可能感兴趣的文章
修改IIS7并发连接数目限制
查看>>
ffmpeg参数解释--中文详细
查看>>
smartsvn 用法
查看>>
TypeLoadException: 找不到 Windows 运行时类型“Windows.UI.Xaml.Controls.Binding
查看>>
43个实例xHTML+CSS(DIV+CSS)网页及导航布局教程
查看>>
init_MUTEX 与 sema_init 函数【转】
查看>>
Form域中用Post提交容量大的数据
查看>>
C++ 匿名枚举
查看>>
注册mySQL到JDBC驱动程序方法浅谈
查看>>
微信JSApi支付~订单号和微信交易号
查看>>
使用IE的地址栏来辅助调试Web页脚本
查看>>
Python读取文件内容并将内容插入到SSDB中
查看>>
【Web动画】CSS3 3D 行星运转 && 浏览器渲染原理
查看>>
如何快速掌握一门新技术/语言/框架...
查看>>
从Wireshark监听的数据中提取需要的数据
查看>>
Cannot update paths and switch to branch at the same time(转)
查看>>
[20161216]toad下显示真实的执行计划.txt
查看>>
大咖|第四范式蒋仁皓:什么才是构建企业AI的关键要素
查看>>
[20161220]rman tag format标识2.txt
查看>>
Excel导入导出的业务进化场景及组件化的设计方案(转)
查看>>