今天搞了一下文件上传功能组件Common FileUpload。
需要两个Jar包分别是commons-io-1.4.jar,commons-fileupload-1.2.1.jar。点击下载
只需要写一个上传类UploadServlet.java,还需要两个Jsp界面,分别负责上传文件和输出上传是否成功。
还需要在根目录下新建一个文件夹uploads,用于保存上传后文件。
下面是上传Servlet类源码:
-
packagecom.sy.web;
-
importjava.io.*;
-
importjava.util.*;
-
importjavax.servlet.*;
-
importjavax.servlet.http.*;
-
importorg.apache.commons.fileupload.*;
-
importorg.apache.commons.fileupload.disk.DiskFileItemFactory;
-
importorg.apache.commons.fileupload.servlet.ServletFileUpload;
-
publicclassUploadServletextendsHttpServlet{
-
privatestaticfinallongserialVersionUID=-2201219701121037194L;
-
privateStringsavePath;
-
privateServletContextsc;
-
publicvoidinit(ServletConfigconfig){
-
savePath=config.getInitParameter("savePath");
- sc=config.getServletContext();
- }
-
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
-
throwsServletException,IOException{
- doPost(request,response);
- }
-
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
-
throwsServletException,IOException{
-
request.setCharacterEncoding("UTF-8");
-
DiskFileItemFactoryfactory=newDiskFileItemFactory();
-
ServletFileUploadupload=newServletFileUpload(factory);
-
try{
-
Listitems=upload.parseRequest(request);
-
Iteratoritr=items.iterator();
-
while(itr.hasNext()){
- FileItemitem=(FileItem)itr.next();
-
if(item.isFormField()){
-
System.out.println("表单参数名:"+item.getFieldName()
-
+",表单参数值:"+item.getString("UTF-8"));
-
}else{
-
if(item.getName()!=null&&!item.getName().equals("")){
-
System.out.println("上传文件的大小:"+item.getSize());
-
System.out.println("上传文件的类型:"+item.getContentType());
-
-
System.out.println("上传文件的名称:"+item.getName());
-
-
FiletempFile=newFile(item.getName());
-
Filefile=newFile(sc.getRealPath("/")+savePath,
- tempFile.getName());
-
-
item.write(file);
-
request.setAttribute("upload.message","上传文件成功!");
-
}else{
-
request.setAttribute("upload.message","没有选择上传文件!");
- }
- }
- }
-
}catch(Exceptione){
- e.printStackTrace();
-
request.setAttribute("upload.message","上传文件失败!");
- }
-
request.getRequestDispatcher("/uploadResult.jsp").forward(request,
- response);
- }
- }
相关推荐
首先,我们来看一下标题:“利用Common-fileupload封装的文件上传组件...附上源码”。这表明我们将讨论如何使用这个库来创建一个文件上传系统,并且提供有源码可供参考。通过`Common-fileupload`,我们可以实现用户...
通过以上步骤,我们就使用Apache Commons FileUpload组件实现了一个基本的文件上传功能。你可以根据自己的需求对这个示例进行扩展,比如添加错误处理、文件类型检查和存储优化等。参考提供的博文链接,可以获取更多...
- 创建`lib`目录,并下载Apache Commons FileUpload组件(版本1.0),解压后将`commons-fileupload-1.0.jar`放入`lib`目录。 - 创建`src`目录用于存放Java源代码,并编写`compile.bat`批处理文件以便于编译Java...
10. **与其他Apache Commons库的集成**:Apache Commons FileUpload经常与另一个Apache Commons组件——Commons IO一起使用,共同处理文件I/O操作,例如读取和写入文件。 通过分析"commons-fileupload-1.3.2-src...
标题中的"commons-fileupload-1.3.3&commons-fileupload-1.3.3架包和代码.rar"提到了Apache Commons FileUpload的1.3.3版本的库及其源码。Apache Commons FileUpload是一个Java库,专门用于处理HTTP协议中的多部分...
`common_fileupload详解.doc`文档应该提供了关于库的详细使用指南、API参考和示例代码。通过阅读文档,你可以快速掌握如何在项目中集成和使用`commons-fileupload`。 总的来说,Apache Commons FileUpload库极大地...
在这个主题中,我们将深入探讨其中的两个关键组件:`Commons-IO` 和 `Commons-Fileupload`,以及它们的源码分析。 **Apache Commons IO** `Commons-IO` 是一组与I/O相关的实用工具类,它弥补了Java标准库中对输入/...
Commons-Discovery 提供工具来定位资源 (包括类) ,通过使用各种模式来映射服务/引用名称和资源名称。. EL Commons-EL 提供在JSP2.0规范中定义的EL表达式的解释器. FileUpload FileUpload 使得在你可以在应用和...
commons-fileupload-1.2.1实现文件上传 需导入commons-fileupload-1.2.1.jar和 commons-io-1.3.2.jar upload2.jsp *" pageEncoding="gb2312"%> <!DOCTYPE ...
|--taotao-common --- 通用组件、工具类 |--taotao-manage -- 后台系统 |--com.taotao.manage.web |--com.taotao.manage.service |--com.taotao.manage.mapper |--com.taotao.manage.pojo 3.4. 创建...
描述中的"包括源码和API"意味着这些JAR包不仅包含了编译后的类库,还提供了源代码供开发者学习和调试,以及API文档帮助理解每个组件的使用方法和功能。 以下是压缩包子文件所对应的Apache Commons组件及其主要功能...
在ASP环境中,文件上传通常需要借助于服务器端的组件,例如Common Files的FileUpload控件,但这类组件可能需要特定的服务器配置或购买。爱雪儿无组件上传类的出现,解决了这一问题,它使得开发者在没有额外组件的...