好记性不如烂笔头,记录一下。

2016的最后一天,以一篇博客结尾迎接新的一年。

此处用的富文本编辑器是wangEditor,一款开源的轻量级的富文本编辑器,这里着重说一下里面的图片上传功能。

服务器端接收图片用到了两个jar包,分别是commons-fileupload和commons-io。

下载下来之后./test/test-uploadfn.html,打开该文件,找到下面这行代码。

 editor.config.uploadImgUrl = '/wangEditor/Upload';  //等号后面写上你上传的后台路径,这里是我的路径

接下来是对服务器端的操作,这里用一个Servlet做演示,新建一个Servlet,在Post里面写上对处理前端上传图片请求得代码,如下。

 public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8"); DiskFileItemFactory factory = new DiskFileItemFactory(); //解析器的配置信息 ServletFileUpload upload = new ServletFileUpload(factory); //解析器的实例化对象 String fileName = String.valueOf(new Date().getTime() + ".jpg"); //取得一个唯一的图片名称 //我将fileName写在这个位置,而没有写在下面的for循环当中,是因为当我传图片时,一张图片,从前台会提交两次请求,
//如果写在for里面会导致我分成两张图片保存,造成的后果就是图片格式不正确,所以我写在这里。
//这个demo在这个地方也就被限定了,只能进行一次上传一张图片的操作 try {
ArrayList<FileItem> files = (ArrayList<FileItem>) upload.parseRequest(request); for(FileItem item : files) { InputStream is = item.getInputStream(); //这里得到图片对象的输流,我将在下文中写入文件中 ServletContext context = getServletContext(); String Path = context.getRealPath("/upload"); //存放图片的目录 File pic_file = new File(Path); if(!pic_file.exists() || !pic_file.isDirectory()) { //不存在或者不是目录就创建文件夹
pic_file.mkdir();
} pic_file = new File(Path+"/"+fileName); FileOutputStream out = new FileOutputStream(pic_file); //准备写入文件的输出流 //建立缓冲区数组
byte[] buffer = new byte[1024]; //缓冲区数组的长度定义,当IO从流中获取不到数据的时候,返回值为-1
int len = -1; //循环写入文件
while((len = is.read(buffer)) > -1) {
out.write(buffer,0,len);
} is.close(); out.close(); item.delete(); response.getWriter().print("/wangEditor/upload/"+fileName); } } catch (FileUploadException e) {
e.printStackTrace();
} }

这样一个简单的传图demo就做好了。

示例图:

打开test-uploadfn.html。

开始点击上传图片到upload文件夹下。

选择图片完成之后,如下图所示。

我传了一张大图。

jsp富文本图片和数据上传的更多相关文章

  1. 富文本编辑器handyeditor,上传和预览图片的host地址不一样

    使用富文本编辑器(官网)时,大多时候都会用到图片上传,但是下载的富文本编辑器的默认配置是只有一个上传地址的host的. var he = HE.getEditor('editor', { autoHe ...

  2. Django之富文本编辑器kindeditor 及上传

    1.什么是富文本编辑器 百度百科(https://baike.baidu.com/item/%E5%AF%8C%E6%96%87%E6%9C%AC%E7%BC%96%E8%BE%91%E5%99%A8 ...

  3. Ueditor富文本编辑器--上传图片自定义上传操作

    最近负责将公司官网从静态网站改版成动态网站,方便公司推广营销人员修改增加文案,避免官网文案维护过于依赖技术人员.在做后台管理系统时用到了富文本编辑器Ueditor,因为公司有一个阿里云文件资源服务器, ...

  4. JSP Ueditor 实现图片跨域上传

    Ueditor的单图上传,在官方文档上明确写了不支持 然后通过百度找了许多方案,终于有一个可以解决了. http://www.cnblogs.com/hpnet/p/6290452.html 不过那个 ...

  5. 从web编辑器 UEditor 中单独提取图片上传,包含多图片单图片上传以及在线涂鸦功能

    UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码.(抄的...) UEditor是非常好用的富文 ...

  6. jsp\struts1.2\struts2 中文件上传(转)

    jsp\struts1.2\struts2 中文件上传 a.在jsp中简单利用Commons-fileupload组件实现 b.在struts1.2中实现c.在sturts2中实现现在把Code与大家 ...

  7. UEditor+七牛,实现图片直连上传

    最近做的项目,涉及到使用富文本编辑器,我选择了百度的UEditor.同时,我们的图片放在七牛云存储上.关于这两者间的集成,我写下一些个人的经验,与大家分享. 图片上传方案 目前来说,Web端基于七牛等 ...

  8. 个人永久性免费-Excel催化剂功能第20波-Excel与Sqlserver零门槛交互-数据上传篇

    Excel作为众多数据存储的交换介质,在不同的系统内的数据很少可以很连贯地进行整合分析,一般的业务系统都会提供导出Excel作为标配功能供用户使用系统内生成的数据. 此时最大的问题是,Excel很维去 ...

  9. div中粘贴图片并上传服务器 div中拖拽图片文件并上传服务器

    应用简介:此文主要是描述如何在前端div中直接ctrl+v 粘贴图片,并上传到服务器,包括拖拽图片文件到div中 应用场景描述:用QQ或者其它切图软件截图,在指定的div中ctrl+v 粘贴并显示,点 ...

随机推荐

  1. C语言 · 4_2找公倍数

    问题描述 这里写问题描述. 打印出1-1000所有11和17的公倍数. 样例输入 一个满足题目要求的输入范例.例:无 样例输出 与上面的样例输入对应的输出.例:   代码如下: #include< ...

  2. Node-Webkit打包

    1.node-webkit是什么? NW.js is an app runtime based on Chromium and node.js. You can write native apps i ...

  3. HTTP常用状态码分析

    不管是面试还是工作中,经常会碰到需要通过HTTP状态码去判断问题的情况,比如对于后台RD,给到前端FE的一个接口,出现502或者504 error错误,FE就会说接口存在问题,如果没有知识储备,那就只 ...

  4. node-sass 安装失败的解决措施

    在测试gulp-webapp的时候遇到了styles不能被正常编译的问题,究其原因是node-sass没有被正常安装. 根本原因是国内网络的原因. 最终的解决方法是通过淘宝的npm镜像安装node-s ...

  5. [C#] C# 知识回顾 - 委托 delegate

    C# 知识回顾 - 委托 delegate [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6031892.html 目录 What's 委托 委托的属性 ...

  6. MySQL中interactive_timeout和wait_timeout的区别

    在用mysql客户端对数据库进行操作时,打开终端窗口,如果一段时间没有操作,再次操作时,常常会报如下错误: ERROR (HY000): Lost connection to MySQL server ...

  7. WebSocket - ( 一.概述 )

    说到 WebSocket,不得不提 HTML5,作为近年来Web技术领域最大的改进与变化,包含CSS3.离线与存储.多媒体.连接性( Connectivity )等一系列领域,而即将介绍的 WebSo ...

  8. FreeMarker:怎么使用

    第一个FreeMarker程序 1. 建立一个普通的java项目:testFreeMarker 2. 引入freemarker.jar包 3. 在项目目录下建立模板目录:templates 4. 在t ...

  9. 编译器开发系列--Ocelot语言1.抽象语法树

    从今天开始研究开发自己的编程语言Ocelot,从<自制编译器>出发,然后再自己不断完善功能并优化. 编译器前端简单,就不深入研究了,直接用现成的一款工具叫JavaCC,它可以生成抽象语法树 ...

  10. Hyper-V上运行的Linux虚拟机验证是否安装了集成服务

    Hyper-V上运行的Linux虚拟机验证是否安装了集成服务 ps aux|grep "hv"root       311  0.0  0.0      0     0 ?     ...