jsp之文件上传和下载
很详细的文件上传和下载教程
很多初学jsp的同志都在实现文件上传到服务器或者从服务器上下载文件到本地计算机这方面不是很了解,今天在这里我会帮助大家慢慢的实现这一功能。
准备工作:
1. 到网上下载两个包
第一个叫做commons-fileupload-1.2.1.jar
第二个叫做commons-io-1.3.2.jar
2. 建一个项目用来实现文件上传和下载
我创建的Web项目名为fileUpload,截图如下
3. 我们把从网上下载下来的包copy到WebRoot目录下Web-INF下的子目录lib目录里
然后打开Referenced Libraries,你会看见两个包已经存在于里面了。
下面我们开始实现文件上传
1. 首先我们创建一个名为uploadFile.jsp的页面,如下图:
点击浏览,可以出现以下画面
很详细的文件上传和下载教程
源代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+ ":" +request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>
<head>
<base href="<%=basePath%>">
<title>实现文件上传到服务器</title>
<meta http-equiv="pragma" content="no-cache">
<body> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head>
很详细的文件上传和下载教程
<form action="doFileUpload.jsp" method="post"
enctype="multipart/form-data">
文件:<input type="file" name="chooseFile"/></br>
姓名:<input type="text" name="userName"/></br>
<input type="submit" value="提交">
</form>
</body>
</html>
注意:form表单里的enctype=”multipart/form-data”这一属性一定要写,这是用来标明此表单的类型是文件类型的。
2. 创建另一个jsp页面用来处理文件上传页面(实现功能),名为doFileUpload.jsp。
一定要和form表单里action的值相同才行
源代码和注释如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@page
import="http://doc.guandang.netmons.fileupload.servlet.ServletFileUpload"%> <%@page import="http://doc.guandang.netmons.fileupload.FileItemFactory"%> <%@page
import="http://doc.guandang.netmons.fileupload.disk.DiskFileItemFactory"%> <%@page import="http://doc.guandang.netmons.fileupload.FileItem"%>
<%@page import="java.io.File"%>
<%
//先判断是否是文件上传类型enctype="multipart/form-data"
boolean isFileUpload = ServletFileUpload.isMultipartContent(request); //如果是文件上传类型
if(isFileUpload){
//得到文件上传工厂
FileItemFactory factory = new DiskFileItemFactory();
//处理文件上传核心类 ServletFileUpload fileUpload = new ServletFileUpload(factory); //设置文件上传类的编码格式 fileUpload.setHeaderEncoding("UTF-8"); // 集合数据 : FileItem对象 注意: 每一个表单域 对应一个 FileItem对象(封装) List<FileItem> fileItemList = fileUpload.parseRequest(request); //遍历fileItemList for(FileItem item: fileItemList){ //如果这个文本域是文件类型的 if(!item.isFormField()){ //得到文本域的value值,即 路径+文件名 String value = item.getName(); //得到文件名 String fileName = value.substring(http://doc.guandang.netstIndexOf("\\")+1);
很详细的文件上传和下载教程
//得到上传的文件类型 //String fileType = fileName.substring(http://doc.guandang.netstIndexOf(".")); //给文件重新命名 日期+文件名 fileName = new Date().getTime() + fileName; //得到服务器的根路径 String rootPath = request.getRealPath("/"); //指定文件存放路径 String realPath = rootPath+"/"+"upload"; //定义文件存放的目录,注意 目录也是文件 File file = new File(realPath); //如果目录不存在 if(!file.isDirectory()){ } File newFile = new File(realPath+"/"+fileName); //向newFile文件中写入数据 item.write(newFile); }else {//如果不是文件上传的文本域,把输入的内容显示在页面上 out.print("name=" + new String(
item.getFieldName().getBytes("ISO-8859-1"),"utf-8")
+",value="+ new String(
item.getString().getBytes("ISO-8859-1"),"utf-8")); //创建文件上传目录 file.mkdirs();
%> } } }
OK,大功告成了!把项目发布到tomocat里,然后启动tomocat即可访问了,上传的文件的目录在tomocat的安装目录下此项目的根目录下例如D:\software\Tomcat 6.0\webapps\fileUpload,看看文件是不是已经在你创建的文件夹下了!
文件下载
创建download.jsp文件,源代码如下
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@page import="java.io.File"%>
<%@page import="java.io.FileInputStream"%>
<%@pageimport="com.sun.xml.internal.messaging.saaj.util.ByteOutputStream"%>
<%@page import="java.io.OutputStream"%>
<%@page import="http://doc.guandang.neters"%>
很详细的文件上传和下载教程
<%
//得到你要下载的文件名(由前一个页面传过来)
String fileName = new String
(request.getParameter("fileName").getBy …… 此处隐藏:2860字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [外语考试]管理学 第13章 沟通
- [外语考试]07、中高端客户销售流程--分类、筛选讲
- [外语考试]2015-2020年中国高筋饺子粉市场发展现
- [外语考试]“十三五”重点项目-汽车燃油表生产建
- [外语考试]雅培奶粉培乐系列适用年龄及特点
- [外语考试]九三学社入社申请人调查问卷
- [外语考试]等级薪酬体系职等职级表
- [外语考试]货物买卖合同纠纷起诉状(范本一)
- [外语考试]青海省实施消防法办法
- [外语考试]公交车语音自动报站系统的设计第3稿11
- [外语考试]logistic回归模型在ROC分析中的应用
- [外语考试]2017-2021年中国隔膜泵行业发展研究与
- [外语考试]神经内科下半年专科考试及答案
- [外语考试]园林景观设计规范标准
- [外语考试]2018八年级语文下册第一单元4合欢树习
- [外语考试]分布式发电及微网运行控制技术应用
- [外语考试]三人行历史学笔记:中世纪人文主义思想
- [外语考试]2010届高考复习5年高考3年联考精品历史
- [外语考试]挖掘机驾驶员安全生产责任书
- [外语考试]某211高校MBA硕士毕业论文开题报告(范
- 用三层交换机实现大中型企业VLAN方案
- 斯格配套系种猪饲养管理
- 涂层测厚仪厂家直销
- 研究生学校排行榜
- 鄱阳湖湿地景观格局变化及其驱动力分析
- 医学基础知识试题库
- 2010山西省高考历年语文试卷精选考试技
- 脉冲宽度法测量电容
- 谈高职院校ESP教师的角色调整问题
- 低压配电网电力线载波通信相关技术研究
- 余额宝和城市商业银行的转型研究
- 篮球行进间运球教案
- 气候突变的定义和检测方法
- 财经大学基坑开挖应急预案
- 高大支模架培训演示
- 一种改进的稳健自适应波束形成算法
- 2-3-鼎视通核心人员薪酬股权激励管理手
- 我国电阻焊设备和工艺的应用现状与发展
- MTK手机基本功能覆盖测试案例
- 七年级地理教学课件上册第四章第一节




