帮朋友写个程序,要求让指定文件夹下的图片,能全部读取到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' 就行了~
