`

Common FileUpload组件的使用!(源码)

阅读更多

今天搞了一下文件上传功能组件Common FileUpload。

 

需要两个Jar包分别是commons-io-1.4.jar,commons-fileupload-1.2.1.jar。点击下载

 

只需要写一个上传类UploadServlet.java,还需要两个Jsp界面,分别负责上传文件和输出上传是否成功。

 

还需要在根目录下新建一个文件夹uploads,用于保存上传后文件。

 

下面是上传Servlet类源码:

 

<!---->package com.sy.web;

import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.commons.fileupload.*;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

public class UploadServlet extends HttpServlet {
    
private static final long serialVersionUID = -2201219701121037194L;
    
private String savePath;
    
private ServletContext sc;

    
public void init(ServletConfig config) {
        savePath 
= config.getInitParameter("savePath");
        sc 
= config.getServletContext();
    }


    
public void doGet(HttpServletRequest request, HttpServletResponse response)
            
throws ServletException, IOException {
        doPost(request, response);
    }


    
public void doPost(HttpServletRequest request, HttpServletResponse response)
            
throws ServletException, IOException {
        request.setCharacterEncoding(
"UTF-8");
        DiskFileItemFactory factory 
= new DiskFileItemFactory();
        ServletFileUpload upload 
= new ServletFileUpload(factory);
        
try {
            List items 
= upload.parseRequest(request);// 上传文件解析
            Iterator itr = items.iterator();// 枚举方法
            while (itr.hasNext()) {
                FileItem item 
= (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());
                        
// item.getName()返回上传文件在客户端的完整路径名称
                        System.out.println("上传文件的名称:" + item.getName());
                        
// 此时文件暂存在服务器的内存当中

                        File tempFile 
= new File(item.getName());// 构造临时对象
                        File file = new File(sc.getRealPath("/"+ savePath,
                                tempFile.getName());
                        
// 获取根目录对应的真实物理路径
                        item.write(file);// 保存文件在服务器的物理磁盘中
                        request.setAttribute("upload.message""上传文件成功!");// 返回上传结果
                    }
 else {
                        request.setAttribute(
"upload.message""没有选择上传文件!");
                    }

                }

            }

        }
 catch (Exception e) {
            e.printStackTrace();
            request.setAttribute(
"upload.message""上传文件失败!");
        }

        request.getRequestDispatcher(
"/uploadResult.jsp").forward(request,
                response);
    }

}

 

好了可以上传了。

 

施杨出品!!!

分享到:
评论

相关推荐

    利用Common-fileupload封装的文件上传组件...附上源码.

    首先,我们来看一下标题:“利用Common-fileupload封装的文件上传组件...附上源码”。这表明我们将讨论如何使用这个库来创建一个文件上传系统,并且提供有源码可供参考。通过`Common-fileupload`,我们可以实现用户...

    利用commons-fileupload组件实现文件上传-实例

    通过以上步骤,我们就使用Apache Commons FileUpload组件实现了一个基本的文件上传功能。你可以根据自己的需求对这个示例进行扩展,比如添加错误处理、文件类型检查和存储优化等。参考提供的博文链接,可以获取更多...

    commons-fileupload文件上传组件中文教程--张孝祥写的

    - 创建`lib`目录,并下载Apache Commons FileUpload组件(版本1.0),解压后将`commons-fileupload-1.0.jar`放入`lib`目录。 - 创建`src`目录用于存放Java源代码,并编写`compile.bat`批处理文件以便于编译Java...

    commons-fileupload-1.3.3&commons-fileupload-1.3.3架包和代码.rar

    标题中的"commons-fileupload-1.3.3&commons-fileupload-1.3.3架包和代码.rar"提到了Apache Commons FileUpload的1.3.3版本的库及其源码。Apache Commons FileUpload是一个Java库,专门用于处理HTTP协议中的多部分...

    commons-fileupload-1.3.2-src 源码

    10. **与其他Apache Commons库的集成**:Apache Commons FileUpload经常与另一个Apache Commons组件——Commons IO一起使用,共同处理文件I/O操作,例如读取和写入文件。 通过分析"commons-fileupload-1.3.2-src...

    commons-fileupload文档及源代码.rar

    `common_fileupload详解.doc`文档应该提供了关于库的详细使用指南、API参考和示例代码。通过阅读文档,你可以快速掌握如何在项目中集成和使用`commons-fileupload`。 总的来说,Apache Commons FileUpload库极大地...

    Commons-io-fileload源码和组件

    在这个主题中,我们将深入探讨其中的两个关键组件:`Commons-IO` 和 `Commons-Fileupload`,以及它们的源码分析。 **Apache Commons IO** `Commons-IO` 是一组与I/O相关的实用工具类,它弥补了Java标准库中对输入/...

    apache-commons源码及jar文件

    Commons-Discovery 提供工具来定位资源 (包括类) ,通过使用各种模式来映射服务/引用名称和资源名称。. EL Commons-EL 提供在JSP2.0规范中定义的EL表达式的解释器. FileUpload FileUpload 使得在你可以在应用和...

    Jsp文件上传下载(工具类源码)

    commons-fileupload-1.2.1实现文件上传 需导入commons-fileupload-1.2.1.jar和 commons-io-1.3.2.jar upload2.jsp *" pageEncoding="gb2312"%&gt; &lt;!DOCTYPE ...

    t淘淘商城项目 商城项目 视频和源码教程 详细

    |--taotao-common --- 通用组件、工具类 |--taotao-manage -- 后台系统  |--com.taotao.manage.web  |--com.taotao.manage.service  |--com.taotao.manage.mapper  |--com.taotao.manage.pojo 3.4. 创建...

    apache.commons所有jar包

    描述中的"包括源码和API"意味着这些JAR包不仅包含了编译后的类库,还提供了源代码供开发者学习和调试,以及API文档帮助理解每个组件的使用方法和功能。 以下是压缩包子文件所对应的Apache Commons组件及其主要功能...

    爱雪儿无组件上传类 v1.0

    在ASP环境中,文件上传通常需要借助于服务器端的组件,例如Common Files的FileUpload控件,但这类组件可能需要特定的服务器配置或购买。爱雪儿无组件上传类的出现,解决了这一问题,它使得开发者在没有额外组件的...

Global site tag (gtag.js) - Google Analytics