使用JS进行目录上传(相当于批量上传)
2010-12-05 00:00
246 查看
<!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>
相关文章推荐
- 使用JS进行目录上传(相当于批量上传)
- 使用JS进行目录上传(相当于批量上传)
- 使用JS进行目录上传(相当于批量上传)
- java使用Jsch实现远程操作linux服务器进行文件上传、下载,删除和显示目录信息
- ASP.NET MVC中使用Dropzone.js实现图片的批量拖拽上传
- FCKeditor是使用非常广泛的HTML编辑器,本文从 ASP.NET 的使用场景对 FCKeditor 与 FCKeditor.NET 的配置、功能扩展(如自定义文件上传子目录、自定义文件名、上传图片的后期处理等)、以及安全性进行初步的阐述。
- 使用JS+plupload直接批量上传图片到又拍云
- node.js 使用fs模块对系统文件及目录进行读写操作
- 使用JS上传图片进行预览
- 使用ajaxfileupload.js进行文件上传,文件可以上传成功,但是不走success回调函数解决办法
- 使用微信的 JS SDK 选取手机照片并进行上传,Iphone无法显示缩略图
- JavaScript基础[用途、基本使用、批量产生对像、对象调用、对批量生产对象进行验证、语法的灵活性、js的内置对象]
- 前台使用ajax上传图片,后台 node.js 使用 formidable 进行图片接受并存于服务器静态文件夹中
- node.js(express)中使用Jcrop进行图片剪切上传功能
- 使用Jcrop.js和jQuery.form.js,用ImageIO等进行头像上传缩放及裁剪
- sae storage 使用uploadify插件进行文件批量上传
- springmvc环境下使用ajaxfileupload.js进行文件上传
- 使用JS+plupload直接批量上传图片到又拍云
- 使用ajaxfileupload.js进行文件上传,出现的问题以及解决办法