`
saram
  • 浏览: 45962 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

Kindeditor图片上传jsp

    博客分类:
  • Java
阅读更多

看到Kindeditor3.1.2版本发布,于是编辑了一个编辑器图片上传的jsp版本,供大家参考使用。(可下载附件)

程序需要的commons-fileupload.jar可自行下载。

 

/**
 * Author:sanghonggang
 * Email:sanghonggang@gmail.com
 * Version:1.0
 */
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.*,java.io.*" %>
<%@ page import="org.apache.commons.fileupload.*" %>
<%@ page import="org.apache.commons.fileupload.disk.*" %>
<%@ page import="org.apache.commons.fileupload.servlet.*" %>
<%
//错误信息
String errorMsg = "";

//图片设置信息
String id		="";
String imgTitle = "";
String imgWidth = "";
String imgHeight = "";
String imgBorder = "";

//文件最大值
long maxSize = 1000000;

//定义文件上传的类型
String[] types = new String[]{"gif", "jpg", "jpeg", "png", "bmp"};

//文件保存目录路径
String savePath = request.getSession().getServletContext().getRealPath("/")+"attached/";

//文件保存目录URL
String saveUrl  = request.getContextPath()+"/attached/";

//判断是否为单个文件
boolean isMultipart = ServletFileUpload.isMultipartContent(request);

if(isMultipart){
	
	FileItemFactory factory = new DiskFileItemFactory();
	
	ServletFileUpload upload = new ServletFileUpload(factory);
	
	List items = upload.parseRequest(request);
	
	// Process the uploaded items
	Iterator iter = items.iterator();
	while (iter.hasNext()) {
	    FileItem item = (FileItem) iter.next();
	  	//原文件名
	    String fileName = item.getName();
	  	
	    if(item.getFieldName().equals("id")){
	    	id = item.getString();
	    }
	    if(item.getFieldName().equals("imgTitle")){
	    	imgTitle = item.getString();
	    }
	    if(item.getFieldName().equals("imgWidth")){
	    	imgWidth = item.getString();
	    }
	    if(item.getFieldName().equals("imgHeight")){
	    	imgHeight = item.getString();
	    }
	    if(item.getFieldName().equals("imgBorder")){
	    	imgBorder = item.getString();
	    }
	    		
	    //文件大小
	    long  fileSize	= item.getSize();
	    	    
	    if (!item.isFormField()) {
	    	//检查文件名
	    	if(item.getName()==""||item.getString()==null){
		    	errorMsg = "请选择文件。";
		    	break;
		    }

	    	//检查目录
	    	File uploadDir = new File(savePath);
	    	if(!uploadDir.isDirectory()){
	    		errorMsg = "上传目录不存在。";
	    		break;
	    	}
	    	//检查目录写权限
	    	if(!uploadDir.canWrite()){
	    		errorMsg = "上传目录没有写权限。";
	    		break;
	    	}
	    	//检查文件大小
	    	if(item.getSize()>maxSize){
	    		errorMsg = "上传文件大小超过限制。";
	    	}
	    	
	    	//获得文件扩展名
		  	String fileExt = fileName.substring(fileName.indexOf(".")+1);
	    	if(!Arrays.<String>asList(types).contains(fileExt.toLowerCase())){
	    		errorMsg = "上传文件扩展名是不允许的扩展名。";
	    	}	
	    	
	    	//服务器上临时文件名
		   	String tempName = new Date().getTime()+"."+fileExt;
	    	
	    	//检查是否已上传
	    	File file = new File(savePath+"\\"+tempName);
	    	if(file.exists()){
	    		errorMsg = "临时文件可能不是上传文件。";
	    	}
	    	
	    	//上传文件	
	    	try{
		    	File uploadedFile = new File(savePath,tempName);
		    		
		    	item.write(uploadedFile);
	    	}catch(Exception e){
	    		errorMsg = "上传文件失败。";
	    	}
	    	
	    	saveUrl = saveUrl + tempName;
	    }
	}
	
	if(errorMsg.equals("")){
		//插入图片,关闭层
	    out.println("<html>");
	    out.println("<head>");
	    out.println("<title>Insert Image</title>");
	    out.println("<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">");
	    out.println("</head>");
	    out.println("<body>");
	    out.println("<script type=\"text/javascript\">parent.KE.plugin[\"image\"].insert(\""+id+"\",\""+saveUrl+"\",\""+imgTitle+"\",\""+imgWidth+"\",\""+imgHeight+"\",\""+imgBorder+"\");</script>");
	    System.out.println("<script type=\"text/javascript\">parent.KE.plugin[\"image\"].insert(\""+id+"\",\""+saveUrl+"\",\""+imgTitle+"\",\""+imgWidth+"\",\""+imgHeight+"\",\""+imgBorder+"\");</script>");
	    out.println("</body>");
	    out.println("</html>");
	}else{
		out.println("<html>");
	    out.println("<head>");
	    out.println("<title>error</title>");
	    out.println("<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">");
	    out.println("</head>");
	    out.println("<body>");
	    out.println("<script type=\"text/javascript\">alert(\""+errorMsg+"\");history.back();</script>");
	    out.println("</body>");
	    out.println("</html>");
	}
	
}
%>

更多内容请看Blog
分享到:
评论
6 楼 pan19849529 2009-12-08  
如果用了struts2,可能是被struts2过滤了。去掉/*改成*.action试试吧
5 楼 gongstring 2009-09-26  
今天我也遇到了这个问题,是因为common-io.jar包没有导入的原因,已经解决了。不过还是感谢博主的这篇文章,谢过了!
4 楼 saram 2009-09-23  
aprilsuny 写道
我参照你的改的JSP,可是提示上传失败
原因是
List fileItems = fu.parseRequest(request); 
值是:null

取出的是空值,这是什么原因呢?


取出的是null值,说明没有正确获得上传内容,看看你是否正确使用commons-fileupload.jar或正确获取文件路径。
3 楼 aprilsuny 2009-09-22  
我参照你的改的JSP,可是提示上传失败
原因是
List fileItems = fu.parseRequest(request); 
值是:null

取出的是空值,这是什么原因呢?
2 楼 wallimn 2009-06-04  
哦。我们都对着upload.php弄的。那可能可以一样。
1 楼 wallimn 2009-06-01  
这似乎是我的原创吧。

相关推荐

    KindEditor-4.1.9批量上传图片完整示例(可以上传到image目录下的子目录中,可返回上一级目录,并实现了按名称、大小、类型排序的功能)

    这是本人写的一个基于KindEditor-4.1.9的Java项目,采用Struts2框架,实现了KindEditor单张图片上传、批量图片上传,可以上传到image目录下的子目录中,可返回上一级目录,并实现了按名称、大小、类型排序的功能。...

    完整版kindeditor修正上传图片问题

    在"完整版KindEditor修正上传图片问题"这个主题中,我们将探讨如何解决KindEditor在处理图片上传时可能遇到的问题,以及如何配置和定制编辑器以适应不同的后台环境。 首先,KindEditor提供了一个`demo`文件夹,其中...

    kindeditor(jsp版)视频上传

    该编辑器提供了多种功能,包括文字编辑、图片上传、链接插入等,其中视频上传是其一大特色。本文将深入探讨KindEditor在jsp环境下的视频上传功能及其配置。 首先,视频上传功能允许用户在编辑器中直接嵌入视频,...

    jsp实现kindeditor在线编辑器可上传图片,附件源码献上

    KindEditor是一款开源的JavaScript富文本编辑器,它支持多种浏览器,提供了丰富的编辑功能,如文字格式化、图片上传、链接插入等。KindEditor的一大亮点是其易于集成和自定义,开发者可以根据需求调整编辑器的外观和...

    JSP版的完善KindEditor在线编辑器(带附件上传与图片按日期分类管理功能)

    2.将图片上传与管理的JSP页面改写成SERVLET,同时去除JSON包; 3.添加图片压缩功能,对超出的宽高压缩成指定的值; 4.添加上传附件功能; 5.添加图片、附件按日期文件夹分类管理的功能; 6.添加上传图片、附件的...

    kindeditor--4.1.12 解决flash批量上传图片按钮不显示与支持video视频

    在这个版本中,可能对这个文件进行了优化,以解决图片上传和视频支持的问题,同时也可能对性能进行了提升,减少了内存占用和提高了运行速度。 `themes` 文件夹存储了编辑器的主题样式,允许用户根据自己的需求选择...

    kindeditor jsp 上传附件版

    KindEditor是一款流行的开源富文本编辑器,它提供了丰富的API和多样的功能,使得用户在网页上可以方便地进行文字编辑、图片上传、链接添加等操作。而JSP(JavaServer Pages)是Java平台上的一种动态网页技术,用于...

    JSP kindeditor编辑器使用,能上传图片,解决乱码问题

    通过以上步骤,你应该能够成功地在JSP项目中集成KindEditor编辑器,并解决图片上传和乱码问题。在实际操作中,可能还需要根据具体环境和需求进行调整,但这个指南提供了一个基本的框架。记得在开发过程中保持良好的...

    java 富文本kindeditor4.0.3_jsp整合

    这里,`width`和`height`定义了编辑器的尺寸,`uploadJson`和`fileManagerJson`配置了图片上传和文件管理的后台接口,需要你根据实际项目实现。 3. **后端处理**:当用户提交编辑器中的内容时,需要在JSP的后端...

    kindeditor图片上传

    在本文中,我们将深入探讨如何在项目中实现KindEditor图片上传功能。KindEditor是一款开源的富文本编辑器,它提供了丰富的API和插件,使得用户能够方便地在网页上编辑和上传图片等多媒体内容。 首先,我们需要从...

    jsp版的kindeditor附件上传组件

    ### jsp版KindEditor附件上传组件详解 #### 一、概述 在当今互联网技术日新月异的时代,富文本编辑器成为了网站开发中不可或缺的一部分。其中,KindEditor是一款功能强大且易于使用的富文本编辑器,它支持多种...

    kindeditor编辑器jsp版

    - **插件丰富**:内置了如图片上传、文件管理、视频插入等多种插件,可以根据需求扩展更多功能。 - **API强大**:提供丰富的API接口,方便开发者进行自定义功能开发和事件监听。 - **易用性**:用户界面直观,...

    kindeditor图片删除功能

    3. `php/upload.php`(或根据服务器环境的其他语言版本,如`asp`, `jsp`, `asp.net`等) - 这是处理图片上传的服务器端脚本,通常负责接收图片,保存到服务器,并返回保存成功的消息。 要解决图片删除问题,我们...

    kindeditor添加本地上传flash功能

    KindEditor是一款广泛使用的开源在线文本编辑器,它提供了丰富的富文本编辑功能,如文本格式化、图片上传、视频插入等。然而,原版的KindEditor并不包含本地上传Flash的功能,这意味着用户无法直接在编辑器中上传并...

    kindeditor jsp示例源码(包含上传文件)

    KindEditor支持图片、文件等上传功能。在配置编辑器时,需要设置`fileManagerJson`参数,指向服务器端处理文件上传的URL。这个URL应返回一个JSON格式的响应,包含上传文件的信息,如文件路径、名称等。 4. **...

    基于自制WEB服务器的网站kindeditor成功多图片上传示例.zip

    易语言使用kindeditor进行图片单个和图片批量上传示例,同时也是除了ASP、php、JSP和NET等之外的自制WEB服务器程序使用kindeditor的示例。E2EE、E4A、易语言、TCP服务器、火山编程、光速网络引擎、星光极速、利快云...

    KindEditor+jsp

    在"KindEditor+jsp"的场景下,开发者通常会创建一个JSP页面,将KindEditor嵌入其中,以实现用户可以在网页上进行文字编辑、格式调整、图片上传等操作。在处理表单提交时,需要注意的一个关键点是,由于KindEditor是...

    kindeditor的JSP示例

    KindEditor支持图片、文件的上传。你需要在服务器端设置一个处理文件上传的Servlet或Controller,处理上传请求。上传文件的路径需与`uploadJson`配置项指定的URL相对应。注意,你需要处理文件的保存、权限控制、...

    kindeditor JSP版支持kindeditor4.0.3

    -- 图片上传的SERVLET --&gt; &lt;servlet-name&gt;UploadImage &lt;servlet-class&gt;com.elkan.kindeditor.upload.UploadImage&lt;/servlet-class&gt; &lt;!-- 上传图片保存的目录 --&gt; &lt;param-name&gt;UPLOAD_PATH &lt;param-value&gt;...

    jsp+kindeditor html 页面编辑

    KindEditor支持图片上传和文件管理功能。在配置中指定`uploadJson`和`fileManagerJson`,分别指向处理图片上传和文件管理的服务器端接口。在服务器端,你需要编写对应的Servlet或Controller来接收请求,处理文件的...

Global site tag (gtag.js) - Google Analytics