smartupload为什么总出错用不了? 20

刚开始学习在jsp页面中使用smartupload。jar包都放好了但是总报错。程序很简单,部分代码如下:SmartUploadsu=newSmartUpload();/... 刚开始学习在jsp页面中使用smartupload。jar包都放好了 但是总报错。
程序很简单,部分代码如下:
SmartUpload su = new SmartUpload();
// 上传初始化
su.initialize(pageContext);
//设定上传限制
//限制每个上传文件的最大长度。
su.setMaxFileSize(1000000*8);
//设定允许上传的文件(通过扩展名限制)
su.setAllowedFilesList("jpg,gif,bmp,JPG,GIF,BMP");
// 上传文件
su.upload();
都是按着教程做下来的 但是总是出现如下错误:
root cause

javax.servlet.ServletException: javax/servlet/ServletRequest
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:841)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:774)
org.apache.jsp.login.add_005farticle_005fsave_jsp._jspService(add_005farticle_005fsave_jsp.java:154)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

root cause

java.lang.NoClassDefFoundError: javax/servlet/ServletRequest
org.apache.jsp.login.add_005farticle_005fsave_jsp._jspService(add_005farticle_005fsave_jsp.java:78)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

请懂的人细心解答一下吧
这2个文件能找到
78行:SmartUpload su = new SmartUpload();
154行: if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
。。不知道哪错了。。。
困扰好多天了。。。。
展开
 我来答
你我皆凡人0V
2008-04-09 · TA获得超过392个赞
知道小有建树答主
回答量:806
采纳率:0%
帮助的人:650万
展开全部
add_005farticle_005fsave_jsp.java:154
add_005farticle_005fsave_jsp.java:78
你看一下上面那两个页面具体指的是哪个地方出错,能找到这个文件吗?
在你的TOMCAT安装目录下,万一找不到,你搜索一下,再指定一下行就知道具体是哪里错了
大概出错的地方不是你拿出来的这些代码,应该是获取参数的时候出问题了
补充:我直接给你一个我以前的吧.

<%
SmartUpload mySmartUpload =new SmartUpload();

// 初始化
final String upFileType="jpg|JPG|GIF|gif|bmp|BMP"; //上传文件类型
final int MAXFILESIZE=100000; //上传文件大小限制
String errMsg=null; //错误信息
boolean err=false; //错误标志
int fileSize=0; //文件大小
String url="images/"; //应保证在根目录中有此目录的存在
String fileName = "";
String fileType ="";
String normalPicName = "n1";
String alarmPicName = "a1";//这两个名字随便取的,因为我要上传两张图片
mySmartUpload.initialize(pageContext);

// 上传文件
mySmartUpload.upload();

//判断将要上传文件的总容量是否超过上限
int count = mySmartUpload.getSize();
if(count>MAXFILESIZE){
out.print ("<script>alert('上传失败!文件大小:"+count/1024+"K超出了限定的范围(最大"+ MAXFILESIZE/1024+"K)');this.history.go(-1);</script>");
}

// 循环取得上传所有文件
else{
for(int i=0;i<mySmartUpload.getFiles().getCount();i++){
com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(i);

if (!myFile.isMissing()) {
String myFileName=myFile.getFileName();//得到文件名
//out.println(myFileName);
//if(myFileName.length()>0){ //取得不带后缀的文件名
//String subFileName=myFileName.substring(0,myFileName.lastIndexOf('.'));
//}
fileType=myFile.getFileExt();//得到文件扩展名
fileType=fileType.toLowerCase(); //将扩展名转换成小写
if (upFileType.indexOf(fileType)==-1){
err=true;
errMsg="文件"+myFileName+"上传失败!只允许上传以下格式的文件:"+upFileType;
}
//得到单个文件大小
//fileSize+=myFile.getSize();
//if (err==false&&fileSize>MAXFILESIZE){
// err=true;
// errMsg="上传失败!文件大小超出了限定的范围(最大"+MAXFILESIZE/1024+"K)";
//}

if(err==false){
//取得路径
//String adss=getServletContext().getRealPath("/")+"JSP\\";
//String trace=adss+myFileName;
//保存文件
//String newFileName="001."+fileType; //可自动生成文件名以防止同名覆盖
//myFile.saveAs(trace);
//myFile.saveAs("enterprise/images/"+myFileName);
Calendar calendar = Calendar.getInstance();
fileName = String.valueOf(calendar.getTimeInMillis());
if(i<=0){
normalPicName=normalPicName+"."+fileType;
String saveurl=request.getRealPath("/")+url;
saveurl+=normalPicName; //保存路径
myFile.saveAs(saveurl,mySmartUpload.SAVE_PHYSICAL);
}
else{
alarmPicName=alarmPicName+"."+fileType;
String saveurl=request.getRealPath("/")+url;
saveurl+=alarmPicName; //保存路径
myFile.saveAs(saveurl,mySmartUpload.SAVE_PHYSICAL);
}
}else{
out.print ("<script>alert('"+errMsg+"');this.history.go(-1);</script>");
}
}
}
//下面是对数据库插入记录,对你没有什么帮助的,上传文件在上面
String deviceId = "";//这个地方我用的随机生成不重复ID;
String deviceName = mySmartUpload.getRequest().getParameter("deviceName");

String sql = "insert into deviceInf values('"+deviceId+"','"+deviceName+"','"+normalPicName+"','"+alarmPicName+"')";

String sql1="select * from deviceInf where deviceName='"+deviceName+"'";
ArrayList selectms=DBConn.searchToBeanList(DeviceInf.class,sql1);
if(selectms.size()==0)
{
boolean addOk = DBConn.execute(sql);

//out.println(sql);

if(addOk) out.println("<script>location='../succeed.jsp?filename="+filename1+"'</script>");
//返回信息:add0(修改成功),add1(修改失败)
}
else
out.println("<script>location='../erro.jsp?msg=samename'</script>");

//out.print("<script>alert('上传文件成功!文件大小:"+count/1024+"K');this.history.go(-1);</script>");
}

%>

头文件我没有写出来,你应该知道怎么导入包吧
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式