现在项目里有个需求,是选中一个文件夹,将里面的数据上传到服务器,且文件夹的层次不变。上传以前只传过图片,文档文件,而且一次只传一个。我找了许多资料,问了一些大佬,好像只有俩种,
一种是只能支持即浏览器的,需要修改当前JSP为可信任网站,但优点是可以选中文件夹,找了好久,百度一般只给出选中文件的文件标签,这是一种可以选中文件夹的。
<%@ page language =“ java ”contentType =“ text / html; charset = UTF-8 ”pageEncoding =“ UTF-8 ”%> <!DOCTYPE HTML PUBLIC “ - // W3C // DTD HTML 4.01 Transitional // EN “”http://www.w3.org/TR/html4/loose.dtd“ > <html> <head> <meta http-equiv = ”Content-Type“ content = ”text / html; charset = UTF-8 “ > <script type = ”text / javascript“ src = ”js / jquery-1.8.3.js“ > </ script> <script type = “text / javascript” > 函数 browseFolder (){ try { var Message = “请选择指定的文件夹” ; //选择框提示信息 var Shell = new ActiveXObject(“Shell.Application”); VAR文件夹= Shell.browseForFolder(0 ,消息,即0x0040 ,0×11); //起始目录为:我的电脑 // var Folder = Shell.BrowseForFolder(0,Message,0); //起始目录为:桌面 if(Folder!= null){ Folder = Folder.items(); //返回FolderItems对象 Folder =文件夹。item(); //返回Folderitem对象 Folder = Folder.Path ; //返回路径 // if(Folder.charAt(Folder.length - 1)!=“\\”){ // Folder = Folder +“\\”; //} alert(Folder); // <form action =“setScriptLibrary”method =“post”> $(“#path”)。val(文件夹); // Ajax调用处理 $。post('setScriptLibrary(这是控制)' 路径:文件夹} , 功能(数据){ 警报(数据); if(data == 0){ alert(“数据初始化成功”); } else { alert(“数据初始化失败”) } } ,'json'); } } 捕获(E){ 警报(例如消息); } } </ script> </ head> <body> --------------------------------------- ----------------------- <h1>选择指定的数据源</ h1> <table> <tr> <td>选择导入数据源:</ td> <td> <input id = “path” type = “text” name = “path” size = “30” readonly = “readonly” > </ td> <td> <input type = “button” value = “选择” onclick = “ browseFolder()” > </ td> </ tr> </ table> -------------------------------------------------- ------------ </ body> </ html>
这个代码是选中文件夹,并返回文件夹的路径,当然了,你还可以获取其他的,我只需要有这个路径和有这个选中文件夹的动作就行。
为修改可信任的的英文先点击那个齿轮后,选择互联网选项
再点自定义级别后就是下面这个样子,选中下面这项,选中启用
这样就有选中文件夹的动作,然后根据文件夹路径
我们就可以获取所有文件夹跟文件,文件就用
HttpURLConnection的
上传到服务器,文件夹就直接判断是否存在,不存在就创建。
第二种就是引导的一个插件,专门针对文件夹的,地址是这个
http://plugins.krajee.com/file-folder-upload-demo#folder-upload-3
这个的话,就是没有文件夹的层次,所以不是我想要的,但是这文件夹的界面确实好看,以后说不定用的上.
下一篇我会记录,
我传出一个路径,这个路径是服务器上的一个文件夹,我需要根据这个路径来下载所有这个文件夹里的文件。