使用JS进行目录上传(相当于批量上传)


Posted in Javascript onDecember 05, 2010
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<title>测试文件上传</title> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script language="javascript" type="text/javascript"> 
$(function(){ 
//ShowFolderFileList("D:\\CodeNet\\web\\Images\\shopTemplets"); 
}); 
function ShowFolderFileList(FilePath){ 
var fso, f, fc, sf; 
fso = new ActiveXObject("Scripting.FileSystemObject"); 
try{ 
f = fso.GetFolder(FilePath); 
}catch(err){ 
alert("文件路径错误或者不存在!!"); 
return false; 
} 
// 列出所有文件 
fc = new Enumerator(f.files); 
var fileName = ""; 
for(;!fc.atEnd();fc.moveNext()){ 
fileName=fc.item().Name; 
$('<div filePath="' + FilePath + fileName + '" uploadState="wait">' + FilePath + fileName + '</div>').appendTo('#showArea'); 
} 
// 循环 递归 读取 文件夹的文件 
sf = new Enumerator(f.SubFolders); 
var folderName = ""; 
for(;!sf.atEnd();sf.moveNext()){ 
folderName = sf.item().Name; 
ShowFolderFileList(FilePath + folderName + "/"); 
} 
} 
function startUpload(){ 
var s = $('#uploaddir').val().replace( /\\/gi, '/' ) ; 
if(s.substring(s.length - 1 , s.length) != '/'){ 
s += '/' 
} 
ShowFolderFileList(s) 
uploadFile(); 
} 
// 上传 
function uploadFile(){ 
if($('#showArea div[uploadState=wait]').length > 0){ 
var thisNode = $('#showArea div[uploadState=wait]').eq(0) 
var WshShell=new ActiveXObject("WScript.Shell"); 
$('#fileupload').focus(); 
WshShell.SendKeys($(thisNode).attr('filePath')); // 路径中不有是中文 
uploadForm.submit(); 
$('#fileupload').focus(); 
$('#fileupload').get(0).createTextRange().select(); 
WshShell.SendKeys('{del}'); 
var dotStr = '.'; 
$('<span></span>').appendTo(thisNode).css('color', 'green'); 
var uploadState = setInterval(function(){ 
if($(thisNode).attr('uploadState') == 'ok'){ 
clearInterval(uploadState); 
$(thisNode).find('span').css('color', 'red').text('(完成)'); 
uploadFile(); 
}else{ 
if(dotStr.length > 15){ dotStr = '.'; }else{ dotStr += '.'; } 
$(thisNode).find('span').text('(上传中' + dotStr + ')'); 
} 
}, 1000); 
} 
} 
// 在iframe 的返回页面中调用此函数 即可实现循环上传,,否则为死循环 
function uploadFinish(){ 
$('#showArea div[uploadState=wait]').eq(0).attr('uploadState', 'ok'); 
} 
</script> 
<style type="text/css"> 
body,td,th { 
font-family: "微软雅黑", Tahoma, Helvetica, Arial, \5b8b\4f53, sans-serif; 
} 
</style> 
</head> 
<body> 
<form action="/a.html" method="post" name="loginForm" style="margin:0 0; padding:0 0;"> 
<input name="uploaddir" id="uploaddir" type="text" value="D:\a" style="width:800px;" /> 
<input type="button" value="开始" id="startIt" name="startIt" onclick="javascript:startUpload();"/> 
</form> 
<form action="/index/upload" method="post" name="uploadForm" enctype="multipart/form-data" target="hidden_frame"> 
<input type="file" name="fileupload" id="fileupload" /> 
<iframe name='hidden_frame' id="hidden_frame" style='display:none'></iframe> 
</form> 
</iframe> 
<div id="showArea"> 
</div> 
</body> 
</html>
Javascript 相关文章推荐
原生js实现改变随意改变div属性style的名称和值的结果
Sep 26 Javascript
js中switch case循环实例代码
Dec 30 Javascript
jquery实现导航固定顶部的效果仿蘑菇街
Oct 22 Javascript
2则自己编写的jQuery特效分享
Feb 26 Javascript
javascript实现捕捉键盘上按下的键
May 05 Javascript
详谈javascript中的cookie
Jun 03 Javascript
实例详解jQuery Mockjax 插件模拟 Ajax 请求
Jan 12 Javascript
原生javascript实现图片无缝滚动效果
Feb 12 Javascript
JS 实现倒计时数字时钟效果【附实例代码】
Mar 30 Javascript
浅谈jQuery 中的事件冒泡和阻止默认行为
May 28 Javascript
Node.js + Redis Sorted Set实现任务队列
Sep 19 Javascript
浅谈node模块与npm包管理工具
Jan 03 Javascript
js对象的构造和继承实现代码
Dec 05 #Javascript
收集的一些Array及String原型对象的扩展实现代码
Dec 05 #Javascript
script标签的 charset 属性使用说明
Dec 04 #Javascript
本地对象Array的原型扩展实现代码
Dec 04 #Javascript
悄悄用脚本检查你访问过哪些网站的代码
Dec 04 #Javascript
jQuery)扩展jQuery系列之一 模拟alert,confirm(一)
Dec 04 #Javascript
高效的表格行背景隔行变色及选定高亮的JS代码
Dec 04 #Javascript
You might like
DSP接收机前端设想
2021/03/02 无线电
PHP四舍五入、取整、round函数使用示例
2015/02/06 PHP
php实现在新浪云中使用imagick生成缩略图并上传的方法
2016/09/26 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
2017/07/03 PHP
JS 分号引起的一段调试问题
2009/06/18 Javascript
Javascript下判断是否为闰年的Datetime包
2010/10/26 Javascript
BOM与DOM的区别分析
2010/10/26 Javascript
javascript中xml操作实现代码
2011/11/21 Javascript
js获取时间(本周、本季度、本月..)
2013/11/22 Javascript
简体中文转换繁体中文(实现代码)
2013/12/25 Javascript
JS兼容浏览器的导出Excel(CSV)文件的方法
2014/05/03 Javascript
JavaScript检测浏览器cookie是否已经启动的方法
2015/02/27 Javascript
jQuery实现的背景动态变化导航菜单效果
2015/08/24 Javascript
js倒计时简单实现代码
2016/08/11 Javascript
JavaScript实现的CRC32函数示例
2016/11/23 Javascript
JS中setTimeout和setInterval的最大延时值详解
2017/02/13 Javascript
Angular.js中$resource高大上的数据交互详解
2017/07/30 Javascript
详解express + mock让前后台并行开发
2018/06/06 Javascript
JS实现马赛克图片效果完整示例
2019/04/13 Javascript
jQuery表单选择器用法详解
2019/08/22 jQuery
使用httplib模块来制作Python下HTTP客户端的方法
2015/06/19 Python
Python实现的摇骰子猜大小功能小游戏示例
2017/12/18 Python
利用Python如何生成hash值示例详解
2017/12/20 Python
Python中elasticsearch插入和更新数据的实现方法
2018/04/01 Python
自定义Django默认的sitemap站点地图样式
2020/03/04 Python
python框架flask入门之路由及简单实现方法
2020/06/07 Python
Python中常用的os操作汇总
2020/11/05 Python
用CSS3写的模仿iPhone中的返回按钮
2015/04/04 HTML / CSS
linux比较文件内容的命令是什么
2013/03/04 面试题
应聘护理专业毕业自荐书范文
2014/02/12 职场文书
交通事故赔偿协议书怎么写
2014/10/04 职场文书
四风对照检查剖析材料
2014/10/07 职场文书
2014年学校教学工作总结
2014/12/06 职场文书
任长霞观后感
2015/06/16 职场文书
初三英语教学反思
2016/02/15 职场文书
开机音效回归! Windows 11重新引入开机铃声
2021/11/21 数码科技