JSP中使用KindEditor的图片上传问题 一直报错“服务器发生故障”,在网上搜了一个下午,解决方法都试了个遍居然还是不行啊啊:上传文件夹权限已经改好,imageUploadJson和fileManagerJson路径也已改好,为什么老是给我报错服务器发生故障啊。最后我用firebug看json的返回值(也就是响应)是空啊什么原因抓狂了都 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 imageUploadJson、fileManagerJson的路径正确吗? 把路径改成../../jsp/***,这样不行把这两个文件拷到image.html文件的路径下,这样也不行我估计不是这两个路径的问题,问题应该是出在别的地方。 <%@ page language="java" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>My JSP 'MyJspFile.jsp' starting page</title> <link href="ajaxfileupload/ajaxfileupload.css" type="text/css" rel="stylesheet"> <style type="text/css"> ul { list-style: none; margin: 0px; padding: 0px; clear: both; } li { float: left; text-align: left; text-indent: 10px; } </style> <script type="text/javascript" src="jslib/jquery-1.4.4.min.js"></script> <script type="text/javascript" src="ajaxfileupload/ajaxfileupload.js"></script> <script type="text/javascript"> function ajaxFileUpload() { $("#loading").ajaxStart(function() { $(this).show(); }).ajaxComplete(function() { $(this).hide(); }); $.ajaxFileUpload( { url : 'AjaxFileServlet', secureuri : false, fileElementId : 'fileToUpload', dataType : 'text', success : function(data, status) { if (typeof (data.error) != 'undefined') { if (data.error != '') { alert(data.error); } else { alert(data.msg); } } }, error : function(data, status, e) { alert(e); } }) return false; } </script> </head> <body> <ul> <li> <img id="loading" src="ajaxfileupload/loading.gif" style="display: none;"> </li> </ul> <form name="form" action="" method="POST" enctype="multipart/form-data"> <ul> <li> <input id="fileToUpload" type="file" size="45" name="fileToUpload" class="input"> <button class="button" id="buttonUpload" onclick="return ajaxFileUpload();"> 上传 </button> </li> </ul> </form> </body></html> package org.uestc.yueshao.FilerImage;import java.awt.Color;import java.awt.Graphics;import java.awt.Image;import java.awt.image.BufferedImage;import java.io.FileInputStream;import java.io.IOException;import javax.imageio.ImageIO;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import com.sun.image.codec.jpeg.JPEGCodec;import com.sun.image.codec.jpeg.JPEGImageEncoder;public class ImagesFiler implements Filter { private FilterConfig filterConfig; private String imgSrc; public void destroy() { // TODO Auto-generated method stub } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // 读出了图片存放的路径 HttpServletRequest req = (HttpServletRequest) request; // 在tomcat当中的图片存放路径 String realPath = filterConfig.getServletContext().getRealPath(req.getServletPath()); //第二张图片的绝对路径 String srcParh = filterConfig.getServletContext().getRealPath(imgSrc); // 从文件系统中的某个文件中获得输入字节。哪些文件可用取决于主机环境 FileInputStream fis = new FileInputStream(realPath); // 抽象类 Image 是表示图形图像的所有类的超类。必须以特定于平台的方式获取图像。 // ImageIO该类包含一些用来查找 ImageReader 和 ImageWriter 以及执行简单编码和解码的静态便捷方法 Image src = ImageIO.read(fis); int width = src.getWidth(null); int height = src.getHeight(null); // 子类描述具有可访问图像数据缓冲区的 Image BufferedImage image = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB); // 创建一个绘制环境Graphics 类是所有图形上下文的抽象基类, //允许应用程序在组件(已经在各种设备上实现)以及闭屏图像上进行绘制。 Graphics g = image.getGraphics(); g.drawImage(src, 0, 0, width, height, null); FileInputStream fis2 = new FileInputStream(srcParh); Image src2 = ImageIO.read(fis2); g.drawImage(src2, 0, 0, 369, 257, null); String outString = "智鑫工作室--月少爷--编辑"; g.setColor(Color.RED); g.drawString(outString, 20, 20);//写入在页面输出的文字,和在页面上的显示位置 JPEGImageEncoder jpegImageEncoder = JPEGCodec.createJPEGEncoder(response.getOutputStream()); jpegImageEncoder.encode(image); response.getOutputStream().close(); chain.doFilter(request, response); } // 在运行启动时,被加载 public void init(FilterConfig config) throws ServletException { filterConfig = config; System.out.println(filterConfig);// 输出配置的Filter信息 imgSrc = config.getInitParameter("src"); System.out.println("show .........."+imgSrc); }} <?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>AjaxFileServlet</servlet-name> <servlet-class>org.uestc.yueshao.servlet.AjaxFileServlet</servlet-class> <init-param> <param-name>saveurl</param-name> <param-value>UsersFiles</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>AjaxFileServlet</servlet-name> <url-pattern>/AjaxFileServlet</url-pattern> </servlet-mapping> <filter> <filter-name>ImagesFiler</filter-name> <filter-class>org.uestc.yueshao.FilerImage.ImagesFiler</filter-class> <init-param> <param-name>src</param-name> <param-value>/img/bg.jpg</param-value> </init-param> </filter> <filter-mapping> <filter-name>ImagesFiler</filter-name> <url-pattern>/images/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list></web-app> <script language="javascript" charset="utf-8" src="../kindeditor/kindeditor.js"></script><script> KE.show({ id : 'jwztech.com', imageUploadJson : '../../asp/upload_json.asp', fileManagerJson : '../../asp/file_manager_json.asp' });</script> 我用的是asp,期间发生过多次问题,多数都比较容易就解决了。因为那些问题都是几天前解决的,所以记不大清楚了,就不说了。唯独调用的时候下面这两个参数的设置问题,今天才找到头绪。imageUploadJson : '../../asp/upload_json.asp', fileManagerJson : '../../asp/file_manager_json.asp'这两个文件在kindeditor/asp/中,这里的路径实际上是相对于kindeditor/plugins/image/image.html的位置,搞清楚这个关系,就知道怎么设置这两个参数了。论坛里查看了很多文章都没摸着头脑。 火狐浏览器关闭问题,急~~~~~~~~~ JQUERY可以实现组态软件的一些功能吗?! js隔几秒刷新一次,怎么刷新不了 请问高手,以下这段php翻译成js怎么写? 奇怪的问题 网页中怎么弹出flash窗口??? 右键菜单问题 又送分了:还是文本框的计算题!^^ 一个中文双引号的问题! document.write("<%=server.htmlencode(HTMLstr)%>"); 求助JS正则判断URL的内容 这串代码哪里有问题呢?
把这两个文件拷到image.html文件的路径下,这样也不行
我估计不是这两个路径的问题,问题应该是出在别的地方。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'MyJspFile.jsp' starting page</title>
<link href="ajaxfileupload/ajaxfileupload.css" type="text/css" rel="stylesheet">
<style type="text/css">
ul {
list-style: none;
margin: 0px;
padding: 0px;
clear: both;
}
li {
float: left;
text-align: left;
text-indent: 10px;
}
</style>
<script type="text/javascript" src="jslib/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="ajaxfileupload/ajaxfileupload.js"></script>
<script type="text/javascript">
function ajaxFileUpload() {
$("#loading").ajaxStart(function() {
$(this).show();
}).ajaxComplete(function() {
$(this).hide();
});
$.ajaxFileUpload( {
url : 'AjaxFileServlet',
secureuri : false,
fileElementId : 'fileToUpload',
dataType : 'text',
success : function(data, status) {
if (typeof (data.error) != 'undefined') {
if (data.error != '') {
alert(data.error);
} else {
alert(data.msg);
}
}
},
error : function(data, status, e) {
alert(e);
}
})
return false;
}
</script>
</head> <body>
<ul>
<li>
<img id="loading" src="ajaxfileupload/loading.gif"
style="display: none;">
</li>
</ul> <form name="form" action="" method="POST"
enctype="multipart/form-data"> <ul>
<li>
<input id="fileToUpload" type="file" size="45" name="fileToUpload"
class="input">
<button class="button" id="buttonUpload"
onclick="return ajaxFileUpload();">
上传
</button>
</li>
</ul>
</form>
</body>
</html>
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.FileInputStream;
import java.io.IOException;import javax.imageio.ImageIO;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;public class ImagesFiler implements Filter { private FilterConfig filterConfig;
private String imgSrc; public void destroy() {
// TODO Auto-generated method stub } public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
// 读出了图片存放的路径
HttpServletRequest req = (HttpServletRequest) request;
// 在tomcat当中的图片存放路径
String realPath = filterConfig.getServletContext().getRealPath(req.getServletPath());
//第二张图片的绝对路径
String srcParh = filterConfig.getServletContext().getRealPath(imgSrc);
// 从文件系统中的某个文件中获得输入字节。哪些文件可用取决于主机环境
FileInputStream fis = new FileInputStream(realPath);
// 抽象类 Image 是表示图形图像的所有类的超类。必须以特定于平台的方式获取图像。
// ImageIO该类包含一些用来查找 ImageReader 和 ImageWriter 以及执行简单编码和解码的静态便捷方法
Image src = ImageIO.read(fis);
int width = src.getWidth(null);
int height = src.getHeight(null);
// 子类描述具有可访问图像数据缓冲区的 Image
BufferedImage image = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB);
// 创建一个绘制环境Graphics 类是所有图形上下文的抽象基类,
//允许应用程序在组件(已经在各种设备上实现)以及闭屏图像上进行绘制。
Graphics g = image.getGraphics(); g.drawImage(src, 0, 0, width, height, null);
FileInputStream fis2 = new FileInputStream(srcParh);
Image src2 = ImageIO.read(fis2);
g.drawImage(src2, 0, 0, 369, 257, null);
String outString = "智鑫工作室--月少爷--编辑";
g.setColor(Color.RED);
g.drawString(outString, 20, 20);//写入在页面输出的文字,和在页面上的显示位置
JPEGImageEncoder jpegImageEncoder = JPEGCodec.createJPEGEncoder(response.getOutputStream());
jpegImageEncoder.encode(image);
response.getOutputStream().close();
chain.doFilter(request, response);
} // 在运行启动时,被加载
public void init(FilterConfig config) throws ServletException {
filterConfig = config;
System.out.println(filterConfig);// 输出配置的Filter信息
imgSrc = config.getInitParameter("src");
System.out.println("show .........."+imgSrc);
}}
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>AjaxFileServlet</servlet-name>
<servlet-class>org.uestc.yueshao.servlet.AjaxFileServlet</servlet-class>
<init-param>
<param-name>saveurl</param-name>
<param-value>UsersFiles</param-value>
</init-param>
</servlet> <servlet-mapping>
<servlet-name>AjaxFileServlet</servlet-name>
<url-pattern>/AjaxFileServlet</url-pattern>
</servlet-mapping>
<filter>
<filter-name>ImagesFiler</filter-name>
<filter-class>org.uestc.yueshao.FilerImage.ImagesFiler</filter-class>
<init-param>
<param-name>src</param-name>
<param-value>/img/bg.jpg</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>ImagesFiler</filter-name>
<url-pattern>/images/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
<script>
KE.show({
id : 'jwztech.com',
imageUploadJson : '../../asp/upload_json.asp',
fileManagerJson : '../../asp/file_manager_json.asp'
});
</script> 我用的是asp,期间发生过多次问题,多数都比较容易就解决了。因为那些问题都是几天前解决的,所以记不大清楚了,就不说了。唯独调用的时候下面这两个参数的设置问题,今天才找到头绪。imageUploadJson : '../../asp/upload_json.asp',
fileManagerJson : '../../asp/file_manager_json.asp'
这两个文件在kindeditor/asp/中,这里的路径实际上是相对于kindeditor/plugins/image/image.html的位置,搞清楚这个关系,就知道怎么设置这两个参数了。论坛里查看了很多文章都没摸着头脑。