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