您现在的位置: 天极网 > 开发频道 > web开发 > 在JSP中操作文件
全文

在JSP中操作文件

2002-04-23 17:37作者:包路跃出处:Yesky责任编辑:

  六、目录结构:

  (1) jsp文件和txt文件同一个目录
  (2) Java文件是servlet目录下

  七、测试:

  http://[server:port]/dir/index.jsp
  对文本文件的操作,其实以前的例子已经讲的很清楚了,之所以还要介绍该例,是想让读者了解JSP中文件操作的功能,可以结合其他技术,像该例中jpeg图片的自动生成,来实现更为强大的功能。对你有所启发吗?

  如何实现文件上传功能?
  文件上传,相信很多读者都比较熟悉了,用E-Mail给同学、朋友寄张近照,以表问候,这时就得用到此项功能。那么文件是如何传到服务器上的呢?看了下面的例子,相信读者会找到答案。
  基本原理:使用ServletRequest类的getInputStream()方法获得一个客户端向服务器端发出的数据流,然后处理这个数据流,从中分析、得到文件上载中传递到服务器的各个参数和数据,然后将其中的文件数据存储为一个文件,这样就实现了文件上载的功能。
  由于代码太长,我们将它放在了配套光盘上,详细内容请见UploadServlet.Java。下面我们就来分析一下该代码。
  // MAX_SIZE用来定义上传文件的最大长度。
  static final int MAX_SIZE = 102400;
  //rootPath用于存放根路径,successMessage用来存放成功信息
  String rootPath, successMessage;
  Init()方法用于初始化参数。最关键的部分是doPost()函数:

在获取数据流之前,首先确定数据流的内容类型是否为multipart/form-data:
if(contentType != null && contentType.indexOf("multipart/form-data") != -1)
{

}

  在内容类型确定为multipart/form-data后,接着就将数据流的内容读到临时缓冲区dataByte[]中:

in = new DataInputStream(request.getInputStream());
int formDataLength = request.getContentLength();
byte dataBytes[] = new byte[formDataLength];
while (totalBytesRead < formDataLength)
{
//check for maximum file size violation
  sizeCheck = totalBytesRead + in.available();
  if (sizeCheck > MAX_SIZE)
  {
    out.println("Sorry, file is too large to upload.");
    return;
  }
  bytesRead = in.read(dataBytes, totalBytesRead, formDataLength);
  totalBytesRead += bytesRead;
}

  下面的工作就是分析文件上载中传到服务器的各个参数和数据了。在该例中,程序分析了Directory、SuccessPage、OverWrite以及OverWritePage参数,这些参数在服务器生成最终文件时使用。最后程序将数据流中的文件内容输出到文件流中,生成文件。

fileOut = new FileOutputStream(fileName);
fileOut.write(file.getBytes(),0,file.length());
共6页。 9 1 2 3 4 5 6

软件资讯·软件下载尽在天极软件

共6页。 首页 上一页 2 3 4 5 6
相关搜索:
相关文章及软件
关注此文读者还看过
热门关注
特别推荐
网友关注
软件下载
娱乐下载
驱动下载
文章排行
本周
本月
最近更新
关于我们|About us|网站律师|天极服务|电子杂志|RSS订阅|加入我们|网站地图
TMG
Copyright (C) 1999-2009 Chinabyte.com, All Rights Reserved 版权所有 天极网络
商务联系、网站内容、合作建议:010-82657868
版权声明 在线提交意见反馈 渝ICP证B2-20030003号
经营性网站备案信息 网警备案 中国网站排名
天极传媒:天极网|比特网|IT专家网|IT商网|52PK游戏网|IT分众