求助,JSP文件上传问题!!!

jk2171767 2005-10-12 04:06:46
我用jspsmartupload,潇湘文件上传系统实现的文件上传怎么会报以下错误,请高手帮忙
type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:244)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:670)
org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:637)
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:785)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
org.apache.jsp.example.example.example1_005fdo_jsp._jspService(example1_005fdo_jsp.java:256)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause

java.lang.OutOfMemoryError
不管怎么做都会出现java.lang.OutOfMemoryError

不管我上传多大的文件都会有内存溢出,这个怎么改啊
最郁闷的是换成这里的方法,上传的文件是0KB。http://www.jspcn.net/htmlnews/2005024.html

我的环境是XPSP2,TOMCAT5.0 256M内存。
...全文
254 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
jk2171767 2005-10-15
  • 打赏
  • 举报
回复
谢谢,和我上面的例子一样还是抛出异常。
如:http://free4.e-168.cn/goodok/jsp1/fileupload/upload.html
我给大家一个FTP大家帮我在FTP里改吧
请进入我的FTP的JSP1文件夹,里面有5个文件夹,请帮忙的朋友看里面的说明,我把问题都写到说明

里了。请大家一定帮我改成功,再次感谢。
ftp4.e-168.com
用户名:goodok
密码: 123456789
访问地址根目录:
http://free4.e-168.cn/goodok/
jk2171767 2005-10-15
  • 打赏
  • 举报
回复
谢谢,和我上面的例子一样还是抛出异常。
如:http://free4.e-168.cn/goodok/jsp1/fileupload/upload.html
我给大家一个FTP大家帮我在FTP里改吧
请进入我的FTP的JSP1文件夹,里面有5个文件夹,请帮忙的朋友看里面的说明,我把问题都写到说明

里了。请大家一定帮我改成功,再次感谢。
ftp4.e-168.com
用户名:goodok
密码: 123456789
访问地址根目录:
http://free4.e-168.cn/goodok/
jk2171767 2005-10-15
  • 打赏
  • 举报
回复
问题解决了,原来是我自己和自己过不去,以前习惯用TT的在新窗口中打开网页,结果害了自己好几天。不是上传的文件0KB就是内存溢出,浪费了不少时间。我改成在当前窗口提交网页就好了。
问题总算解决了,谢谢大家。
眼急手块 2005-10-14
  • 打赏
  • 举报
回复
上面错了。。“设置上传文件类型的限制为xml文件”应该为“设置上传文件类型的限制为jpg文件”,可以添加其他类型。
可以用setMaxFileSize()和setTotalMaxFileSize()来设置文件大小。
眼急手块 2005-10-14
  • 打赏
  • 举报
回复
写个servlet来处理吧
引入的包:
import com.jspsmart.upload.SmartUpload;
import com.jspsmart.upload.SmartUploadException;
部分代码:
SmartUpload mySmartUpload = new SmartUpload();
//初始化
mySmartUpload.initialize(config, request, response);
//设置上传文件类型的限制为xml文件
mySmartUpload.setAllowedFilesList("jpg");
try {
mySmartUpload.upload();
} catch (ServletException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (SmartUploadException e) {
e.printStackTrace();
}
config是在servlet中定义private ServletConfig config;在init(ServletConfig config)中this.config = config;
试试
jk2171767 2005-10-14
  • 打赏
  • 举报
回复
我只要求一次上传一个100K以下的图片,并可显示图片地址。
试了好几种方法都不管用。
帮一下菜鸟好吗?
javaboat 2005-10-14
  • 打赏
  • 举报
回复
commons-beanutils.jar这个包也要的.
javaboat 2005-10-14
  • 打赏
  • 举报
回复
利用 commons-fileupload.jar 上传: 下载地址:http://jakarta.apache.org/site/downloads/downloads_commons-fileupload.cgi
文件指定页面:

<%@ page contentType="text/html;charset=gbk"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Big5">
<title>inputUpload</title>
</head>
<body>
<%
request.setCharacterEncoding("gbk");
%>
<form action="getupload.jsp" enctype="multipart/form-data" method="POST" >
要上?的文件:<input type="FILE" name="file"/>
<input type="submit" value="上?"/>
</form>

</body>
</html>



下面是上传的后台文件 记着下载 apache commons中的fileupload包
<%@ page contentType="text/html;charset=GBK"%>

<%@ page import="java.util.*"%>

<%@ page import="java.io.*"%>

<%@ page import="org.apache.commons.fileupload.*"%>

<%@ page import="org.apache.commons.beanutils.*"%>


<%



DiskFileUpload dfu = new DiskFileUpload();



// 设置允许用户上传文件大小,单位:字节

dfu.setSizeMax(1000000);

// maximum size that will be stored in memory?

// 设置最多只允许在内存中存储的数据,单位:字节

dfu.setSizeThreshold(4096);

// 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录

dfu.setRepositoryPath("f:\\public");

//开始读取上传信息

try{

List fileItems = dfu.parseRequest(request);


%>

<%

// 依次处理每个上传的文件

Iterator i = fileItems.iterator();



String name =null;

long size=0;

while (i.hasNext())

{

FileItem fi = (FileItem) i.next();



//忽略其他不是文件域的所有表单信息

if (!fi.isFormField()) {

name = fi.getName();

size = fi.getSize();

if((name==null||name.equals("")) && size==0)

continue; }

name=fi.getName();

size=fi.getSize();

name = name.replace(':','_');

name = name.replace('\\','_');

File writeFile=new File("F:\\public",name);

fi.write(writeFile);

}



}catch(FileUploadException fue)

{ fue.printStackTrace();}

%>

jk2171767 2005-10-14
  • 打赏
  • 举报
回复
谢谢!!
还是出现内存溢出错误。
servlet不经常用,可不可以给个JAVABEAN+JSP的例子。
jk2171767 2005-10-13
  • 打赏
  • 举报
回复
我试了一下common-upload,可是还是有错误,E文太次了,apache组件不会用。
我用JSP调试的,我只要求一次上传一个100K以下的图片,并可显示图片地址。
我着急用,高手帮一下忙吧。
请求页面up.jsp

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body>
<form action="up1.jsp" method="post" enctype="multipart/form-data" name="form1">
<input name="thisfile" type="file" id="thisfile">
<input name="user" type="text" id="user" size="10">
<input type="submit" name="Submit" value="Submit">
</form>
</body>
</html>



处理页面 up1.jsp

<%@ page contentType="text/html; charset=gb2312" language="java"

import="java.sql.*" errorPage="" %>
<%@ page import="org.apache.commons.fileupload.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body>
<%
try{
DiskFileUpload fu = new DiskFileUpload();
// 设置最大文件尺寸,这里是4MB
fu.setSizeMax(4194304);
// 设置缓冲区大小,这里是4kb
fu.setSizeThreshold(4096);
// 设置临时目录:
fu.setRepositoryPath("e:\\test\\");

// 得到所有的文件:
List fileItems = fu.parseRequest(request);
Iterator i = fileItems.iterator();
// 依次处理每一个文件:
while(i.hasNext()) {
FileItem fi = (FileItem)i.next();
// 获得文件名,这个文件名包括路径:
String fileName = fi.getName();
// 在这里可以记录用户和文件信息
// ...
// 写入文件,暂定文件名为a.txt,可以从fileName中提取文件名:
      out.print("写入成功");
fi.write(new File( "e:\\test\\" + "a.txt"));
}


}
catch(Exception e)
{
out.print("写入error");
}

%>

</body>
</html>
执行结果是:写入error
jk2171767 2005-10-12
  • 打赏
  • 举报
回复
可不可以给一个具体的例子参考一下,谢谢!!!
还有潇湘文件上传系统是不是也一样。
crazycy 2005-10-12
  • 打赏
  • 举报
回复
smartupload会出现这个问题;但常常用common-upload apache的那个组件;
smartupload有个函数可以设置上传的上限;
smartupload是写于内存中;common-upload 是写入临时文件中;
jk2171767 2005-10-12
  • 打赏
  • 举报
回复
thankyou
samkuang 2005-10-12
  • 打赏
  • 举报
回复
up
┌─ 极度学习 ───────────────────────┐ │ │ 感谢你使用 eWebEditor在线文本编辑器王志峰修改版 │ 本代码完全公开和免费,你可以任意复制、传播、修改和使用, │ 但不得公开发表代码 不得用做商业用途,不得向其他使用者收费。 │ │ │ 修改者:王志峰 │ 2009-06-1 │ └────────────────── ───┘ 特此说明:此程序修改自 “eWebEditor在线文本编辑器飞鱼修改版” (网站地址:http://www.fiyu.net) ---------------------------------------------------------------- 程序名称: eWebEditor在线文本编辑器王志峰修改版v0.1.4 软件类别: JSP源码 / 在线文本编辑器 软件语言: 简体中文 授权方式: 免费版 系统平台: JSP+XML+BEAN 程序修改: 王志峰 程序简介: eWebEditor是基于网页的、所见即所得的在线HTML编辑器。她能够在网页上实现许多桌面编辑软件(如:Word)所具有的强大可视编辑功能;现在您使用的是来自eWebSoft在线文本编辑器飞鱼修改版(JSP) 针对使用中发现的一些问题所进行的修订版本。 ---------------------------------------------------------------- 【程序主要功能】 所见即所得 即通过编辑器编辑的文字、图片等HTML标记输出到页面的效果和编辑时显示的效果一致,让使用者方便地对编辑的内容进行修改、排版等。 自动转换为HTML代码 在编辑状态编辑的文字、图片等内容都在后台自动转换为可被浏览器识别的HTML标记语言,使用者更能在代码状态在对代码标记进行修改。 简单易用 编辑器的编辑及使用方法与FrontPage、Dreamweaver等著名主页制作软件类似。无需任何HTML语法知识、儍瓜式的操作让即使没有主页制作经验的使用者也能快速上手。 方便快捷 使用所见即所得的编辑器能快捷、方便地编辑出效果一流的图文效果,如果使用纯手工编写代码的方法编辑则需要浪费大量时间及精力。 ---------------------------------------------------------------- 【安装使用】 部署方式: 1、把文件夹下除WEB-INF文件夹的全部文件复制到您的网站根目录下; 2、把WEB-INF文件夹下的style.xml和button.xml复制到网站根目录的WEB-INF下; 3、把WEB-INF文件夹下的lib目录中的jar文件复制到网站根目录的WEB-INF的lib目录; 4、把WEB-INF文件夹下的class目录中的文件复制到网站根目录的WEB-INF的class目录; 5、把WEB-INF文件夹下的web.xml文件中的一下部分粘贴到网站根目录的WEB-INF的web.xml中; defaultroot debugjsp Added to compile JSPs with debug info org.apache.jasper.servlet.JspServlet classdebuginfo true 3 debugjsp *.jsp 6、重新启动服务器即可。 演示应用:请参考index.jsp和submit.jsp。 界面修改:一般只修改/WEB-INF目录下面的style.xml和button.xml就可以了。 ==================================================== 上传图片路径设置: //此处设置上传文件保存路径,注意路径要由ROOT开始===3处====================== //修改此处需修改WEB-INF/Style.xml文件对应处/UploadFile/ //修改此处需修改eWebEditor.jsp文件对应处 //修改此处需修改upload.jsp文件对应处 例如要传到根目录的/www/images/upload/下面: upload.jsp中 String sUploadFilePath="/www/images/upload/"; Style.xml中 /www/images/upload/ eWebEditor.jsp 中 String sUploadFilePath="/www/images/upload/"; 这样就好了。 建议: 删除演示文件index.jsp和submit.jsp 有什么问题欢迎到深度论坛来提! ===================================== 【版本更新说明】 ·修订图片、flash、多媒体以及附件上传后路径问题; 【特别感谢】 · “eWebSoft在线文本编辑器飞鱼修改版”作者(网站地址:http://www.fiyu.net) · 网友 QQ:Stone.Sun (http://ff.139l.com) 【声明】 您可以自由复制、传播、使用但未经作者允许请勿用于商业场合。使用本软件造成的一切后果作者一概不负责任! 1、本软件及相关文档的版权及其他权利都归“原作者”所有并保留一切权利。除了授权许可协议所提供的明确书面许可外,拥有本程序及相关文档并不赋予您任何有关这些版权或其他知识产权的许可。 2、本软件仅供学习。你可以任意使用、拷贝和分发,但严禁用于商业用途和一切盈利目的,违者必究。我们尊重原作者,保留本软件的一切权利。 3.我们保证本软件不含有任何破坏性代码和木马程序,但在用户使用中可能出现的任何损失我们不付任何责任。 4.本软件不承诺提供任何技术支持和服务,如果您自身不具备相应技术,可到论坛求助或联系我们提供商业服务。 ☆ 本程序为 王志峰 修改 

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧