大家好 我上网下了个jspsmartupload组件
写了个简单的实例
代码如下
<!--
文件名:upload.html
-->
<!doctype html public "-//w3c//dtd html 4.01 transitional//en">
<html>
<head>
<title>文件上传</title>
</head> <body>
<p> </p>
<p align="center">上传文件选择</p>
<form method="post" action="upload.jsp"
enctype="multipart/form-data" > <table width="75%" border="1" align="center">
<tr><td align="center">主题:<input type="text" name="test"></td></tr>
<tr>
<td><div align="center">1、
<input type="file" name="file1" size="30">
</div></td>
</tr>
<tr>
<td><div align="center">2、
<input type="file" name="file2" size="30">
</div></td>
</tr>
<tr>
<td><div align="center">3、
<input type="file" name="file3" size="30">
</div></td>
</tr>
<tr>
<td><div align="center">4、
<input type="file" name="file4" size="30">
</div></td>
</tr>
<tr>
<td><div align="center">
<input type="submit" name="submit" value="上传它!">
</div></td>
</tr>
</table>
</form>
</body>
</html> upload。jsp代码如下
<%@ page contenttype="text/html; charset=GBK" language="java"
import="java.util.*,com.jspsmart.upload.*" errorpage="" %>
<jsp:useBean id="myu" scope="page" class="com.jspsmart.upload.SmartUpload"/>
<html>
<head>
<title>文件上传处理页面</title>
<**** http-equiv="content-type" content="text/html; charset=GBK">
</head> <body>
<%
// 新建一个smartupload对象
String destination="/images/";
// 上传初始化
myu.initialize(pagecontext);
// 设定上传限制
// 1.限制每个上传文件的最大长度。
myu.setMaxFileSize(10000);
// 2.限制总上传数据的长度。
myu.setTotalMaxFileSize(20000);
// 3.设定允许上传的文件(通过扩展名限制),仅允许doc,txt文件。
myu.setAllowedFilesList("doc,txt");
// 4.设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat,
//jsp,htm,html扩展名的文件和没有扩展名的文件。
myu.setDeniedFilesList("exe,bat,jsp,htm,html,,");
// 上传文件
myu.upload();
String content=myu.getRequest().getParameter("test");
out.print(content);
for(int i=0;i<myu.getFiles().getCount();i++)
{
com.jspsmart.upload.File myf=myu.getFiles().getFile(i);
if(!myf.usMissing())
{
myf.saveAs(destination+myf.getFileName);
count++;
}
}out.print(count+"个文件上传了!");
%>
</body>
</html> 报的错误是type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: /admin/upload.jsp(2,0) Page directive has invalid attribute: contenttype
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:198)
org.apache.jasper.compiler.JspUtil.checkAttributes(JspUtil.java:311)
org.apache.jasper.compiler.Validator$DirectiveVisitor.visit(Validator.java:106)
org.apache.jasper.compiler.Node$PageDirective.accept(Node.java:590)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2338)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2388)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2394)
org.apache.jasper.compiler.Node$Root.accept(Node.java:489)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2338)
org.apache.jasper.compiler.Validator.validate(Validator.java:1700)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:178)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:306)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.14 logs.我的项目意识是把本地一些文件 如 PDF 格式 execle 格式 txt格式的文件上传到服务器上 存放到项目下的iMAGES 文件夹下 再把路径存到数据库里面 哪个仁兄帮下忙!
我估计是下载的JAVA 文件不对 结果从新编译时又报 找个到SERVLET jar的错误 比如其中的File.java 编译报如下错误C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\MgS\WEB-INF\class
es\bean\upload>javac File.java
File.java:9: 软件包 javax.servlet 不存在
import javax.servlet.ServletException;
^
File.java:13: 找不到符号
符号: 类 SmartUpload
位置: 类 com.jspsmart.upload.File
private SmartUpload m_parent;
^
File.java:48: 找不到符号
符号: 类 SmartUploadException
位置: 类 com.jspsmart.upload.File
public void saveAs(String s) throws IOException,SmartUploadException
^
File.java:53: 找不到符号
符号: 类 SmartUploadException
位置: 类 com.jspsmart.upload.File
public void saveAs(String s,int i) throws IOException,SmartUploadException
^
File.java:77: 找不到符号
符号: 类 ServletException
位置: 类 com.jspsmart.upload.File
public void fileToField(ResultSet resultset,String s) throws ServletExceptio
n,IOException,SmartUploadException,SQLException
^
File.java:77: 找不到符号
符号: 类 SmartUploadException
位置: 类 com.jspsmart.upload.File
public void fileToField(ResultSet resultset,String s) throws ServletExceptio
n,IOException,SmartUploadException,SQLException ^
File.java:189: 找不到符号
符号: 类 SmartUpload
位置: 类 com.jspsmart.upload.File
protected void setParent(SmartUpload smartupload)
^
File.java:73: 找不到符号
符号: 类 SmartUploadException
位置: 类 com.jspsmart.upload.File
throw new SmartUploadException("File can't be saved (1120).");
^
File.java:119: 找不到符号
符号: 类 SmartUploadException
位置: 类 com.jspsmart.upload.File
throw new SmartUploadException("Unable to save file in the DataBase
(1130).");
^
9 错误C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\MgS\WEB-INF\class
es\bean\upload>
写了个简单的实例
代码如下
<!--
文件名:upload.html
-->
<!doctype html public "-//w3c//dtd html 4.01 transitional//en">
<html>
<head>
<title>文件上传</title>
</head> <body>
<p> </p>
<p align="center">上传文件选择</p>
<form method="post" action="upload.jsp"
enctype="multipart/form-data" > <table width="75%" border="1" align="center">
<tr><td align="center">主题:<input type="text" name="test"></td></tr>
<tr>
<td><div align="center">1、
<input type="file" name="file1" size="30">
</div></td>
</tr>
<tr>
<td><div align="center">2、
<input type="file" name="file2" size="30">
</div></td>
</tr>
<tr>
<td><div align="center">3、
<input type="file" name="file3" size="30">
</div></td>
</tr>
<tr>
<td><div align="center">4、
<input type="file" name="file4" size="30">
</div></td>
</tr>
<tr>
<td><div align="center">
<input type="submit" name="submit" value="上传它!">
</div></td>
</tr>
</table>
</form>
</body>
</html> upload。jsp代码如下
<%@ page contenttype="text/html; charset=GBK" language="java"
import="java.util.*,com.jspsmart.upload.*" errorpage="" %>
<jsp:useBean id="myu" scope="page" class="com.jspsmart.upload.SmartUpload"/>
<html>
<head>
<title>文件上传处理页面</title>
<**** http-equiv="content-type" content="text/html; charset=GBK">
</head> <body>
<%
// 新建一个smartupload对象
String destination="/images/";
// 上传初始化
myu.initialize(pagecontext);
// 设定上传限制
// 1.限制每个上传文件的最大长度。
myu.setMaxFileSize(10000);
// 2.限制总上传数据的长度。
myu.setTotalMaxFileSize(20000);
// 3.设定允许上传的文件(通过扩展名限制),仅允许doc,txt文件。
myu.setAllowedFilesList("doc,txt");
// 4.设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat,
//jsp,htm,html扩展名的文件和没有扩展名的文件。
myu.setDeniedFilesList("exe,bat,jsp,htm,html,,");
// 上传文件
myu.upload();
String content=myu.getRequest().getParameter("test");
out.print(content);
for(int i=0;i<myu.getFiles().getCount();i++)
{
com.jspsmart.upload.File myf=myu.getFiles().getFile(i);
if(!myf.usMissing())
{
myf.saveAs(destination+myf.getFileName);
count++;
}
}out.print(count+"个文件上传了!");
%>
</body>
</html> 报的错误是type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: /admin/upload.jsp(2,0) Page directive has invalid attribute: contenttype
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:198)
org.apache.jasper.compiler.JspUtil.checkAttributes(JspUtil.java:311)
org.apache.jasper.compiler.Validator$DirectiveVisitor.visit(Validator.java:106)
org.apache.jasper.compiler.Node$PageDirective.accept(Node.java:590)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2338)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2388)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2394)
org.apache.jasper.compiler.Node$Root.accept(Node.java:489)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2338)
org.apache.jasper.compiler.Validator.validate(Validator.java:1700)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:178)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:306)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.14 logs.我的项目意识是把本地一些文件 如 PDF 格式 execle 格式 txt格式的文件上传到服务器上 存放到项目下的iMAGES 文件夹下 再把路径存到数据库里面 哪个仁兄帮下忙!
我估计是下载的JAVA 文件不对 结果从新编译时又报 找个到SERVLET jar的错误 比如其中的File.java 编译报如下错误C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\MgS\WEB-INF\class
es\bean\upload>javac File.java
File.java:9: 软件包 javax.servlet 不存在
import javax.servlet.ServletException;
^
File.java:13: 找不到符号
符号: 类 SmartUpload
位置: 类 com.jspsmart.upload.File
private SmartUpload m_parent;
^
File.java:48: 找不到符号
符号: 类 SmartUploadException
位置: 类 com.jspsmart.upload.File
public void saveAs(String s) throws IOException,SmartUploadException
^
File.java:53: 找不到符号
符号: 类 SmartUploadException
位置: 类 com.jspsmart.upload.File
public void saveAs(String s,int i) throws IOException,SmartUploadException
^
File.java:77: 找不到符号
符号: 类 ServletException
位置: 类 com.jspsmart.upload.File
public void fileToField(ResultSet resultset,String s) throws ServletExceptio
n,IOException,SmartUploadException,SQLException
^
File.java:77: 找不到符号
符号: 类 SmartUploadException
位置: 类 com.jspsmart.upload.File
public void fileToField(ResultSet resultset,String s) throws ServletExceptio
n,IOException,SmartUploadException,SQLException ^
File.java:189: 找不到符号
符号: 类 SmartUpload
位置: 类 com.jspsmart.upload.File
protected void setParent(SmartUpload smartupload)
^
File.java:73: 找不到符号
符号: 类 SmartUploadException
位置: 类 com.jspsmart.upload.File
throw new SmartUploadException("File can't be saved (1120).");
^
File.java:119: 找不到符号
符号: 类 SmartUploadException
位置: 类 com.jspsmart.upload.File
throw new SmartUploadException("Unable to save file in the DataBase
(1130).");
^
9 错误C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\MgS\WEB-INF\class
es\bean\upload>
错了...contentType
// 新建一个SmartUpload对象
SmartUpload su = new SmartUpload();
// 上传初始化
su.initialize(pageContext);
// 设定上传限制
// 1.限制每个上传文件的最大长度。
// su.setMaxFileSize(10000);
// 2.限制总上传数据的长度。
// su.setTotalMaxFileSize(20000);
// 3.设定允许上传的文件(通过扩展名限制),仅允许doc,txt文件。
// su.setAllowedFilesList("doc,txt");
// 4.设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat,
//jsp,htm,html扩展名的文件和没有扩展名的文件。
// su.setDeniedFilesList("exe,bat,jsp,htm,html,,");
// 上传文件
su.upload();
// 将上传文件全部保存到指定目录
int count = su.save("D:/temp");
out.println(count+"个文件上传成功! <br>"); // 利用Request对象获取参数之值
out.println("TEST="+su.getRequest().getParameter("TEST")
+" <BR> <BR>"); // 逐一提取上传文件信息,同时可保存文件。
for (int i=0;i <su.getFiles().getCount();i++)
{
com.jspsmart.upload.File file = su.getFiles().getFile(i); // 若文件不存在则继续
if (file.isMissing()) continue; // 显示当前文件信息
out.println(" <TABLE BORDER=1>");
out.println(" <TR> <TD>表单项名(FieldName) </TD> <TD>"
+ file.getFieldName() + " </TD> </TR>");
out.println(" <TR> <TD>文件长度(Size) </TD> <TD>" +
file.getSize() + " </TD> </TR>");
out.println(" <TR> <TD>文件名(FileName) </TD> <TD>"
+ file.getFileName() + " </TD> </TR>");
out.println(" <TR> <TD>文件扩展名(FileExt) </TD> <TD>"
+ file.getFileExt() + " </TD> </TR>");
out.println(" <TR> <TD>文件全名(FilePathName) </TD> <TD>"
+ file.getFilePathName() + " </TD> </TR>");
out.println(" </TABLE> <BR>"); // 将文件另存
// file.saveAs("/upload/" + myFile.getFileName());
// 另存到以WEB应用程序的根目录为文件根目录的目录下
// file.saveAs("/upload/" + myFile.getFileName(),
//su.SAVE_VIRTUAL);
// 另存到操作系统的根目录为文件根目录的目录下
// file.saveAs("c:\\temp\\" + myFile.getFileName(),
//su.SAVE_PHYSICAL); }
最好在IDE中编译,否则要把用到的jar 包设置到环境中
javax.servlet.*是j2ee的包,可以在tomcat/commons/lib下找到相关的jar包
请问各位
我打好JAR包了 编译好的5个 class 文件在 com\jspsmart\upload 目录下
File.class Files.class Request.class ServletUpload.class SmartUpload.class SmartUploadException.class 我打成 jspsmartupload.jar
在jsp页面引用的时候 是 import com.jspsmart.upload.* 还是 import jspsmartupload.*