java实现文件索引,jsp 实现本地文件夹目录遍历并上传此索引下的文件

当前位置:我的异常网» Java Web开发 » jsp 实现本地文件夹目录遍历并上传此索引下的文件

jsp 实现本地文件夹目录遍历并上传此索引下的文件

www.myexceptions.net  网友分享于:2015-08-26  浏览:0次

jsp 实现本地文件夹目录遍历并上传此目录下的文件

希望用户能够通过自己的浏览器选择一个本地的文件夹目录,并将此目录下的所有文件上传到服务器中。如果是单个文件用file控件很好实现,如果需要遍历本地文件夹目录并上传该如何实现呢。

我在网上找到了一个相关的例子,是利用ActiveX来做的,但似乎不完全,后台java程序中继承的Action类没有交代。

这方面资料太少,急用,还望大神指点!

下面是找的这个例子:

pageEncoding="UTF-8"%>

html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

UpLoad

function fileupload(filepath){

if(filepath!=""){

sendFileToServer(filepath);

}  else{

alert("请选择要上传的文件");

}

}

function callback() {

if (xmlhttp.readyState == 4) {

var responseText = xmlhttp.responseText;

}

}

function sendByteStreamToServer(stream,url){

if (window.XMLHttpRequest) {

xmlhttp = new XMLHttpRequest();

if (xmlhttp.overrideMimeType) {

xmlhttp.overrideMimeType("text/xml")

}

} else if (window.ActiveXObject) {

var activexName = ["MSXML2.XMLHTTP","Microsoft.XMLHTTP"];

for (var i = 0; i 

try {

xmlhttp = new ActiveXObject(activexName[i]);

break;

} catch(e) {

e.print()

}

}

}

xmlhttp.onreadystatechange = callback;

xmlhttp.open("post", url, false);

boundary="abcd"

xmlhttp.setRequestHeader("Content-Type", "multipart/form-data, boundary="+boundary);

xmlhttp.setRequestHeader("Content-Length", stream.Size);

xmlhttp.send(stream);

}

function sendFileToServer(filePath){

var filepath=encodeURI(encodeURI(filePath));

var stream =new ActiveXObject("ADODB.Stream");

stream.Type=1;

stream.Open();

stream.Position = 0;//指定或返加对像内数据的当前指针。

stream.LoadFromFile(filePath) //将FileName指定的文件装入对像中,参数FileName为指定的用户名

stream.Position = 0;

sendByteStreamToServer(stream,"/upLoad.do?path="+filepath);//请求路径

stream.Close();

}

var countfiles=0;

var countfolders=0;

//用于打开浏览对话框选择路径

function BrowseFolder(){

try{

var Message = "请选择文件夹"; //选择框提示信息

var Shell = new ActiveXObject( "Shell.Application" );

var Folder = Shell.BrowseForFolder(0,Message,0x0040,0x11);//起始目录为我的电脑

//var Folder = Shell.BrowseForFolder(0,Message,0); //起始目录为桌面

if(Folder != null){

Folder = Folder.items(); // 返回 FolderItems 对象

Folder = Folder.item(); // 返回 Folderitem 对象

Folder = Folder.Path; // 返回路径

if(Folder.charAt(Folder.length-1) != "\\"){

Folder = Folder + "\\";

}

return Folder;

}else{

Folder="";

return Folder;

}

} catch(e){

alert(e.message+"11");

}

}

//用于遍历

function traverse(localPath,textHtml){

var fso = new ActiveXObject("Scripting.FileSystemObject");

var currentFolder = fso.GetFolder(localPath);

var fileList = new Enumerator(currentFolder.files);

var subFolderList = "";

var fileHtml=textHtml;

var aFile;

for (; !fileList.atEnd(); fileList.moveNext()) {

countfiles++;

aFile=fileList.item();

fileHtml.push(aFile.Path);

}

subFolderList = new Enumerator(currentFolder.SubFolders);

for (; !subFolderList.atEnd(); subFolderList.moveNext())   {

countfolders++;

fileHtml=traverse(subFolderList.item().Path,fileHtml)//递归遍历子文件夹

}

return(fileHtml);

}

function showDiv(){

document.getElementById('loadStyle').style.display='inline';

}

function browse(){

文章评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值