需求:在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
点击 浏览 按钮,选择文件
点击 上传 按钮
文件上传成功
注意:上传文件之前目录中应该有目录名称,不然会报目录不存在的错误