使用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 相关文章推荐
简单的无缝滚动程序-仅几行代码
May 08 Javascript
JavaScript 监听textarea中按键事件
Oct 08 Javascript
通用javascript脚本函数库 方便开发
Oct 13 Javascript
JavaScript实现点击按钮字体放大、缩小
Feb 29 Javascript
Bootstrap~多级导航(级联导航)的实现效果【附代码】
Mar 08 Javascript
JavaScript数组去重由慢到快由繁到简(优化篇)
Aug 26 Javascript
基于js中document.cookie全面解析
Sep 14 Javascript
微信小程序传值以及获取值方法的详解
Apr 29 Javascript
微信小程序bindtap事件与冒泡阻止详解
Aug 08 Javascript
解决jquery validate 验证不通过后验证正确的信息仍残留在label上的方法
Aug 27 jQuery
Vue2.0 实现页面缓存和不缓存的方式
Nov 12 Javascript
Ajax实现异步加载数据
Nov 17 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
扩展String功能方法
2006/09/22 Javascript
jQuery 获取对象 定位子对象
2010/05/31 Javascript
关于js中window.location.href,location.href,parent.location.href,top.location.href的用法与区别
2010/10/18 Javascript
web性能优化之javascript性能调优
2012/12/28 Javascript
将文本输入框内容加入表中的js代码
2013/08/18 Javascript
js toFixed()方法的重写实现精度的统一
2014/03/06 Javascript
网页中表单按回车就自动提交的问题的解决方案
2014/11/03 Javascript
AngularJS的内置过滤器详解
2015/05/14 Javascript
JS基于FileSystemObject创建一个指定路径的TXT文本文件
2015/08/05 Javascript
贴近用户体验的Jquery日期、时间选择插件
2015/08/19 Javascript
javascript实现数字倒计时特效
2016/03/30 Javascript
Node.js环境下JavaScript实现单链表与双链表结构
2016/06/12 Javascript
微信小程序 开发指南详解
2016/09/27 Javascript
基于JS实现的随机数字抽签实例
2016/12/08 Javascript
Vue和Bootstrap的整合思路详解
2017/06/30 Javascript
JS实现身份证输入框的输入效果
2017/08/21 Javascript
vue 1.0 结合animate.css定义动画效果
2018/07/11 Javascript
基于Bootstrap下拉框插件bootstrap-select使用方法详解
2018/08/07 Javascript
webpack 如何解析代码模块路径的实现
2019/09/04 Javascript
[06:40]2014DOTA2西雅图国际邀请赛 DK战队巡礼
2014/07/07 DOTA
python网络编程学习笔记(五):socket的一些补充
2014/06/09 Python
Python去除列表中重复元素的方法
2015/03/20 Python
浅谈Matplotlib简介和pyplot的简单使用——文本标注和箭头
2018/01/09 Python
python 30行代码实现蚂蚁森林自动偷能量
2021/02/08 Python
html5 sessionStorage会话存储_动力节点Java学院整理
2017/07/06 HTML / CSS
英国购买威士忌网站:Master of Malt
2019/09/26 全球购物
巴西购物网站:Submarino
2020/01/19 全球购物
战友聚会邀请函
2014/01/18 职场文书
副总经理岗位职责
2014/03/16 职场文书
求职信怎么写范文
2014/05/26 职场文书
2014国庆节幼儿园亲子活动方案
2014/09/16 职场文书
党员“四风”问题批评与自我批评思想汇报
2014/10/06 职场文书
入党培养人考察意见
2015/06/08 职场文书
事业单位工作人员2015年度思想工作总结
2015/10/15 职场文书
pytorch交叉熵损失函数的weight参数的使用
2021/05/24 Python
Vue实现导入Excel功能步骤详解
2021/07/03 Vue.js