本文作者:海怪。欢迎转载。但敬请注明出处。
Java.io包给我们提供了一个File类。借此类我们可以轻松地完成文件的列表获取文件信息等。
这里我以一个简单的音乐网站为例子,说明本地文件共享及提供下载的Jsp解决方法。
整个网站仅有两个页面,一个是logo.jsp,是页面的头部,一个是 index.jsp,负责完百所有文件列表显示等工作的。
下面是logo.jsp的代码:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
Wellcome to my music house
logo.jsp没涉及到关键的技术,只是提供了进入几个文件夹的链接及鼠标指向链接图片时的特效。用到Javascript。
而重头戏则是index.jsp:
为说明方便,我在代码中用不同色的文字说明。
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.io.*" import="java.lang.*" import="java.util.Date" errorPage="" %>
Wellcome to my music house
<%! File file=null; %>
<%String url=request.getParameter("URL"); //整个页面靠一个参数来传递信息,URL存放的其实是本地文件的相对路径!
<%! File file=null; %>
<%String url=request.getParameter("URL"); //整个页面靠一个参数来传递信息,URL存放的其实是本地文件的相对路径!
String path=""; //“path”参数是用来构造文件的路径参数。
String title="";
session.setMaxInactiveInterval(-1); //使用了Session来保存一个常量initpath,在这里把session的生命期设为无限,防止出现超时现象。
String inipath="G:\\my music\\"; //该应用的context,作为常量驻于Session中。它与URL参数加进来就是一个文件的完整路径
session.setAttribute("Path",inipath);
if (url==null)
{
path="G:\\my music\\";
title="海之音乐世界";
}
else
{url=new String(url.getBytes("ISO-8859-1"),"gb2312"); //URL参数有可能是中文参数,通过内码转换来解决该问题
path=session.getAttribute("Path")+url+"\\";
if(url.lastIndexOf(" \\")!=-1)
title=url.substring(url.lastIndexOf(" \\")+1);
else title=url;
}
file=new File(path); //建立起一个文件实例
File[] files=file.listFiles(); //该文件是个目录,列出其下的文件
%>
<%@ include file="logo.jsp"%>
String title="";
session.setMaxInactiveInterval(-1); //使用了Session来保存一个常量initpath,在这里把session的生命期设为无限,防止出现超时现象。
String inipath="G:\\my music\\"; //该应用的context,作为常量驻于Session中。它与URL参数加进来就是一个文件的完整路径
session.setAttribute("Path",inipath);
if (url==null)
{
path="G:\\my music\\";
title="海之音乐世界";
}
else
{url=new String(url.getBytes("ISO-8859-1"),"gb2312"); //URL参数有可能是中文参数,通过内码转换来解决该问题
path=session.getAttribute("Path")+url+"\\";
if(url.lastIndexOf(" \\")!=-1)
title=url.substring(url.lastIndexOf(" \\")+1);
else title=url;
}
file=new File(path); //建立起一个文件实例
File[] files=file.listFiles(); //该文件是个目录,列出其下的文件
%>
<%@ include file="logo.jsp"%>
<%=title %>
文件 | 修改时间 | 类型 | 下载 |
"+files[i].getName()+" | "+lstmdfy+" | 目录 | "+"打开 |
"+files[i].getName()+" | "+lstmdfy+" | 文件 | "+"下载 |
海怪的Jsp之家^_^
Copyright:[email protected]
本系统是个简单但功能却较强大的。当然要另外架设一个FTP的服务器哦。
要不下载的时候可能出现文件直接在IE中打开的问题。
仍存在的问题是如果文件名混着此例如'这样的符号或者.这样的字符时会出错。待解决。
各位如果需要应用,可以仅改变initpath的参数和URL为空值是的path变量的值就可以用到你的机子上了。
当然logo里面的链接你自行改咯。
各位如果需要应用,可以仅改变initpath的参数和URL为空值是的path变量的值就可以用到你的机子上了。
当然logo里面的链接你自行改咯。