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);
。。不知道哪错了。。。
困扰好多天了。。。。 展开
程序很简单,部分代码如下:
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);
。。不知道哪错了。。。
困扰好多天了。。。。 展开
展开全部
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>");
}
%>
头文件我没有写出来,你应该知道怎么导入包吧
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>");
}
%>
头文件我没有写出来,你应该知道怎么导入包吧
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询