利用cos组件实现jsp中上传附件

12/12/2015来源:Java教程人气:656

需求:在web功能中附件上传功能为最基本的功能之一,所以用cos组件做了一个附件上传的demo。附件上传功能的实现可以利用其它的java组件实现,相关资料网上比较多。

 

说明步骤:下载组件并安装 --> 代码实现 --> 测试附件上传功能

 

下载cos组件并安装到web工程

1、访问 http://www.servlets.com/

2、点击 Download the package 超链接

3、点击 cos-26Dec2008.zip 下载组件

4、解压下载的文件并复制cos-26Dec2008\lib\cos.jar

5、复制到工程中的lib下

6、重启web工程

 

jsp 代码实现

fileUpload.jsp

需要注意一点是enctype="multipart/form-data",此处是为了利用二进制进行传输

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>文件上传demo</title>
<link href="/web01//CSS/main.css" rel="stylesheet" type="text/css" />
</head>
<%@ include file="top.jsp" %>
<body>
    <form action="handleFileUpload.jsp" name="frm1" method="post" enctype="multipart/form-data">
        文件名:<input type="file" name="file1" size="50"><br>
        <input type="submit" value="上传">
    </form>
</body>
<%@ include file="bottom.jsp" %>
</html>

 handleFileUpload.jsp

点击 上传 按钮时调用的jsp页面,具体会处理上传功能

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="com.oreilly.servlet.MultipartRequest" %>
<%@ page import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>文件上传demo</title>
<link href="/web01//css/main.css" rel="stylesheet" type="text/css" />
</head>
<%@ include file="top.jsp" %>
<body>
<%
    // 文件要保存的路径
    String savePath = "d:/test/uploadfile/";
    
    int sizeLimit = 30 * 1024 * 1024;
    String fileName = "";
    String fileSystemName = "";
    long fileSize = 0;
    
    MultipartRequest multi = new MultipartRequest(request, savePath, sizeLimit, "UTF-8", new DefaultFileRenamePolicy());
    
    Enumeration fileNames = multi.getFileNames();
    while (fileNames.hasMoreElements()) {
        fileName = (String) fileNames.nextElement();
        fileSystemName = multi.getFilesystemName(fileName);
        
        if (fileSystemName != null) {
            fileSize = multi.getFile(fileName).length();
        }
    }
    out.PRintln("文件上传成功!<br>");
    out.println("文件名:" + fileSystemName + "<br>");
    out.println("文件大小:" + fileSize / 1024 + "KB");
%>
</body>
<%@ include file="bottom.jsp" %>
</html>

 

测试上传功能

首先访问上传页面 http://localhost:8081/web01/view/fileUpload.jsp

点击 浏览 按钮,选择文件

点击 上传 按钮

文件上传成功

注意:上传文件之前目录中应该有目录名称,不然会报目录不存在的错误