日期:2014-05-16  浏览次数:20499 次

JSP批量扫描图片展现到网页上

帮朋友写个程序,要求让指定文件夹下的图片,能全部读取到JS数组中,达到的效果就是任何时候增加新的图片,刷新网页,就能更新数组。

?

开始首先想到的是用JS来读取扫描,遗憾的是,JS/Jquery之类的脚本语言因为权限问题,都不可能扫描到服务器上的文件信息,只能读取指定地址。

?

所以就只能求助于动态页面语言了,JSP本身就支持JAVA上的File类,这提供了方便。

?

下面这段是JSP的代码,功能是扫描heads路径下的文件

?

<%@ page language="java" import="java.util.*,java.io.File,java.io.FileInputStream" pageEncoding="UTF-8"%>
<%
	String filePath = request.getRealPath("\\heads"); // 设定扫描路径
	String names = "";
	File[] fList = null;
	try {
		File f = new File(filePath); // 构造文件对象
		if (f.isDirectory()) {
			fList = f.listFiles(); // 扫描路径下的文件序列
			for (int j = 0; j < fList.length; j++) {
				File file = fList[j];
				if (file.isFile()) {
					names += file.getName();
				}
			}
		}
	} catch (Exception e) {
		e.printStackTrace();
	}
%>

?

?

然后,就能在JS中循环遍历这个文件列表了

?

var fList = [<%--将File列表中的值加入到fList--%>
	<%for(int i=0; i<fList.length-1; i++){%>
		{name:'<%=fList[i].getName()%>'},
	<%}%>
	<%if(fList.length > 0) {%>
		{name:'<%=fList[fList.length-1].getName()%>'}
	<%}%>
];

?

?

数组fList打印出来是

[ {name: 'aaa.png'},

? {name: 'bbb.png'},

? {name : 'ccc.png'}

]

?

剩下的,只需要在img的src引入 'heads/aaa.png' 就行了~