使用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 相关文章推荐
jQuery数组处理代码详解(含实例演示)
Feb 03 Javascript
js去字符串前后空格5种实现方法及比较
Apr 03 Javascript
让低版本浏览器支持input的placeholder属性(js方法)
Apr 03 Javascript
js简单实现根据身份证号码识别性别年龄生日
Nov 29 Javascript
jquery实现input输入框实时输入触发事件代码
Jan 28 Javascript
XML文件转化成NSData对象的方法
Aug 12 Javascript
JavaScript验证Email(3种方法)
Sep 21 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记9)
Dec 24 Javascript
AngularJS中使用HTML5手机摄像头拍照
Feb 22 Javascript
微信公众平台开发教程(六)获取个性二维码的实例
Dec 02 Javascript
es6 字符串String的扩展(实例讲解)
Aug 03 Javascript
JSON stringify方法原理及实例解析
Oct 23 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
动态网站web开发 PHP、ASP还是ASP.NET
2006/10/09 PHP
PHP实现获取图片颜色值的方法
2014/07/11 PHP
php实现的zip文件内容比较类
2014/09/24 PHP
PHP递归创建多级目录
2015/11/05 PHP
Javascript 中的类和闭包
2010/01/08 Javascript
裁剪字符串trim()自定义改进版
2013/04/10 Javascript
JavaScript数组随机排列实现随机洗牌功能
2015/03/19 Javascript
JS模式之简单的订阅者和发布者模式完整实例
2015/06/30 Javascript
js如何判断访问是来自搜索引擎(蜘蛛人)还是直接访问
2015/09/14 Javascript
JS实现仿Windows经典风格的选项卡Tab切换代码
2015/10/20 Javascript
jQuery操作基本控件方法实例分析
2015/12/31 Javascript
EasyUI闪屏EasyUI页面加载提示(原理+代码+效果图)
2016/02/21 Javascript
Bootstrap模块dropdown实现下拉框响应
2016/05/22 Javascript
Angular 封装并发布组件的方法示例
2018/04/19 Javascript
webpack打包react项目的实现方法
2018/06/21 Javascript
vue组件开发之用户无限添加自定义填写表单的方法
2018/08/28 Javascript
Vue中img的src是动态渲染时不显示的解决
2019/11/14 Javascript
微信小程序实现页面左右滑动
2020/11/16 Javascript
Python实现PS滤镜中马赛克效果示例
2018/01/20 Python
Anaconda2下实现Python2.7和Python3.5的共存方法
2018/06/11 Python
Python对excel文档的操作方法详解
2018/12/10 Python
python自定义函数实现一个数的三次方计算方法
2019/01/20 Python
python pytest进阶之xunit fixture详解
2019/06/27 Python
Django+python服务器部署与环境部署教程详解
2020/03/30 Python
简历的自我评价范文
2014/02/04 职场文书
小学生爱国演讲稿
2014/04/25 职场文书
党员评议个人总结
2014/10/20 职场文书
践行党的群众路线心得体会
2014/11/05 职场文书
师德师风主题教育活动总结
2015/05/07 职场文书
2015年宣传思想工作总结
2015/05/22 职场文书
人与自然的观后感
2015/06/18 职场文书
2016年重阳节慰问信
2015/12/01 职场文书
公安干警正风肃纪心得体会
2016/01/15 职场文书
Spring Cloud Netflix 套件中的负载均衡组件 Ribbon
2022/04/13 Java/Android
python热力图实现的完整实例
2022/06/25 Python
CSS实现背景图片全屏铺满自适应的3种方式
2022/07/07 HTML / CSS