频 道 直 达 - 新闻 - 培训 - 软件 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 读书 - 博客 - BBS
51CTO.COM_中国最大的网络技术网站
找资料:

10.5 在JSP中上传文件

作者: 刘晓华/张健/周慧贞 出处:电子工业出版社  (  ) 砖  (  ) 好  评论 ( ) 条  进入论坛
更新时间:2007-04-25 16:21
关 键 词:上传  文件  JSP  Java  JSP应用开发详解(第三版)
阅读提示:本节将讨论JSP开发经常要使用的技术和技巧。通过学习本章,读者不仅可以掌握一些技巧,也可以巩固JSP、Servlet的基础语法知识。本章的主要内容有:①在不同页面或者用户之间共享数据;②创建错误处理页面;③国际化问题的解决;④在JSP中操作文件;⑤在JSP中上传文件。

要进行文件上传,可以自己开发一个Servlet或者JavaBean处理上传的任务。总的思路是由Servlet或者JavaBean获得客户端请求的输入流,然后从这个输入流中读取指定的文件,然后把文件保存到指定的位置。原理虽然简单,但是要设计一个功能完备的执行上传文件的类,却是一个比较复杂的任务。

值得庆幸的是,我们可以使用现在已有的工具。比如SmartUpload,就是一个比较成熟的上传工具,笔者一直使用这个工具,它的性能比较稳定。在这里我们介绍这个工具的使用。

首先编写一个提交上传文件的网页,如例程10-35所示。

例程10-35  提交文件的网页(FileUpload.html)

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body>
<hr>
<center>
upload file<br>
<form action="upload.jsp" method="post"  enctype="multipart/form-data">
<table><tr><td>name:
<input type="file" name="file" size="20"></td></tr>
<tr><td><input type="submit" value="上传"></td></tr>
</table>
</form>
</center>
</body>
</html>

虽然是HTML文件,但这个还是有需要注意的地方。在Form的属性中,方法必须是Post,并且必须增加enctype="multipart/form-data"属性,否则就不能上传文件。

下面我们看怎么在JSP中接收上传的文件并且保存,如例程10-36所示。

例程10-36  在JSP中保存上传的文件(upload.jsp)

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*"
errorPage="" %>
<%@ page import="com.jspsmart.upload.*"%>
<jsp:useBean id="mySmartUpload" scope="page" class="com.jspsmart.upload.SmartUpload" />
<html>
<head>
<title>上载附件 </title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<center>正在上传文件……
<%

//上载附件
try
{

mySmartUpload.initialize(pageContext);
mySmartUpload.service(request,response);
mySmartUpload.upload();
String fn=fn=mySmartUpload.getFiles().getFile(0).getFileName();
mySmartUpload.save("upload/");//文件保存的目录为upload
out.println("已经成功上传了文件,请查看<a href=upload/"+fn+">这里</a>,看文件是否上传成功");
}
catch(Exception e)

e.printStackTrace();
}

%>
<a href=FileUpload.html>重新上传</a>
</body>
</html>

SmartUpload已经封装了上传文件需要的功能,使用起来非常简单。只要执行黑体字的代码,上传的任务就会自动完成,并且把文件保存到目录“upload”中。

在浏览器里输入http://127.0.0.1:8080/ch10/FileUpload.html,结果如图10-20所示。

选择要上传的文件,然后单击【上传】按钮,将出现如图10-21所示的界面。

图10-20  上传文件
图10-21  上传文件成功

如果文件上传成功,单击“这里”链接,将会链接到已上传的文件。

【责任编辑:火凤凰 TEL:(010)68476606-8007】

回书目   上一节   下一节
发表
查看
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 最 大 的 网 络 技 术 网 站 ·
技 术 成 就 梦 想
订阅技术快讯
电子杂志下载
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
名称:Vista精品应用黄皮书
简介:《Vista精品应用黄皮书》囊括了Vista的各方面内容。此次的精简版,是将里面的内容做了提取,便于用户下载和使用。内容包含了各种Vista的安装与实施、技巧与解析以及各种Vista相关学习文档和相关软件的安全下载。该电子书是了解和应用Vista人员必备的工具手册,并且也是第一本
名称:2006中国IT论坛精品集合
简介:本书由“51CTO论坛推广联盟”制作完成。书中所有内容均来自各联盟成员的论坛(网站)。制作本书的目的是为了集中大家的优势资源,将更多更精彩的内容带给广大技术爱好者。本书是联盟成立以来制作的第一本书。
关键字阅读
频道精选
主编信箱 热线:010-66476606 告诉我们您想看的:专题 文章
关于我们 | 诚聘英才 | 联系我们 | 网站大事 | 意见反馈 | 网站地图
Copyright©2005-2007 51CTO.COM 版权所有