1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JSP6_1精选

* 第六讲 JSP中的文件操作(2) 教学目的 本讲继续讲述JSP中使用Java输入、输出流实现文件的读写操作 。 1 文件上传 2 文件下载 3 分页读取文件 第六讲 JSP中的文件操作(2) 这一讲继续介绍有关JSP中文件操作的内容。 6.1 文件上传 客户通过一个JSP页面,上传文件给服务器时,该JSP页面必须含有File类型的表单,并且表单必须将ENCTYPE的属性值设成“multipart/form-data”,File类型表单如下所示: Form action= “接受上传文件的页面” method= “post” ENCTYPE=“ multipart/form-data” Input Type= “File” name= “picture” /Form JSP引擎可以让内置对象request调用方法getInputStream()获得一个输入流,通过这个输入流读入客户上传的全部信息,包括文件的内容以及表单域的信息。 下面的例子1中,客户通过Example6_1.jsp页面上传如下的文本文件A.txt。 A.txt: 你好,我们正在学习文件的上传,request调用getInpuStream()可以获得一个输入流,通过这个输入流可以读取客户上传的全部信息,包括表单的头信息以及上传文件的内容。以后将讨论如何去掉表单的信息,获取文件的内容。 在accept.jsp页面,内置对象request调用方法getInputStream()获得一个输入流in、用FileOutputStream创建一个输出流o。输入流in读取客户上传的信息,输出流o将读取的信息写入文件B.txt,该文件B.txt被存放于服务器的F:/2000中。B.txt的内容如图6.3所示。 图6.1 选择上传的文件 图6.2 接收上传 图6.3 收到的上传信息 文件B.txt的前4行(包括一个空行)以及倒数5行(包括一个空行)是表单域的内容,中间部分是上传文件A.txt的内容。 例子1(效果如图6.1、6.2、6.3所示) Example6_1.jsp: %@ page contentType=text/html;charset=GB2312 % HTML BODY P选择要上传的文件:BR FORM action=accept.jsp method=post ENCTYPE=multipart/form-data INPUT type=FILE name=boy size=38 BR INPUT type=submit name =g value=提交 /BODY /HTML accept.jsp: %@ page contentType=text/html;charset=GB2312 % %@ page import =java.io.* % HTML BODY %try{ InputStream in=request.getInputStream(); File f=new File(F:/2000,B.txt); FileOutputStream o=new FileOutputStream(f); byte b[]=new byte[1000]; int n; while((n=in.read(b))!=-1) {o.write(b,0,n); } o.close(); in.close(); } catch(IOException ee){} out.print(文件已上传); % /BODY /HTML 通过上面的讨论我们知道,按着HTTP协议,文件表单提交的信息中,前4行和后面的5行是表单本身的信息,中间部分才是客户提交的文件的内容。在下面的例子中我们通过输入输出流技术获取文件的内容,即去掉表单的信息。 首先,我们将客户提交的全部信息保存为一个临时文件,该文件的名字是客户的session对象的Id,不同客户的这个Id是不同的。然后读取该文件的第2行,这一行中含有客户上传的文件的名字,获取这个名字。再获取第4行结束的位置,以及倒数第6行的结束位置,因为这两个位置之间的内容是上传文件的内容。然后将这部分内容存入文件,该文件的名字和客户上传的文件的名字保持一致。最后删除临时文件。

文档评论(0)

pfenejiarz + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档