ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:270.77KB ,
资源ID:5986824      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5986824.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(js+jsp+servlet实现一键上传文件夹中的所有文件.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

js+jsp+servlet实现一键上传文件夹中的所有文件.docx

1、js+jsp+servlet实现一键上传文件夹中的所有文件JS+JSP+SERVLET实现一键上传文件夹下面的所有文件到数据库中1、页面的Js代码: function fileupload(filepath) if(filepath!=) sendFileToServer(filepath); else alert(请选择要上传的文件!); function callback() if (xmlhttp.readyState = 4) var responseText = xmlhttp.responseText; function sendByteStreamToServer(stream,

2、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 activexName.length; i+) try xmlhttp = new ActiveXObject(activexNamei);

3、 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); /alert(stream.size); xmlhttp.send(stream);function s

4、endFileToServer(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; var id= document.getElemen

5、tById(appid).value; sendByteStreamToServer(stream,/appmanager.do?action=importdate&tag=3&cmd=yhjzqywGetDatazz&filePath=+filepath+&id=+id); stream.Close();var countfiles=0;var countfolders=0;/用于打开浏览对话框,选择路径function BrowseFolder()try var Message = 请选择文件夹; /选择框提示信息 var Shell = new ActiveXObject( Shell.

6、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(Fo

7、lder.length-1) != ) Folder = Folder + ; /document.all.getfolder.value=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

8、fileList = new Enumerator(currentFolder.files); var subFolderList = ; var fileHtml=textHtml; var aFile; for (; !fileList.atEnd(); fileList.moveNext() countfiles+; aFile=fileList.item(); /fileHtml+=filename:+aFile.Name.substring(0,aFile.Name.lastIndexOf(.)+, /fileHtml+=文件属性:+aFile.Attributes+,; /file

9、Html+=创建日期:+aFile.DateCreated+; /fileHtml+=最后存取时间:+aFile.DateLastAccessed+; /fileHtml+=最后修改时间:+aFile.DateLastModified+; /fileHtml+=父目录:+aFile.ParentFolder+,; /fileHtml+=path:+aFile.Path+,; /fileHtml+=aFile.Path; fileHtml.push(aFile.Path); /fileHtml+=短文件名:+aFile.ShortName+,; /fileHtml+=短路径:+aFile.Sho

10、rtPath+,; /fileHtml+=size:+aFile.Size+; /fileHtml+=type:+aFile.Type +; /fileHtml+=所在盘:+aFile.Drive+; subFolderList = new Enumerator(currentFolder.SubFolders); for (; !subFolderList.atEnd(); subFolderList.moveNext() countfolders+; /fileHtml +=chfile:+ subFolderList.item().Path+; fileHtml=traverse(sub

11、FolderList.item().Path,fileHtml)/递归遍历子文件夹 /fileHtml+=共遍历文件数:+countfiles+共遍历文件夹数:+countfolders; return(fileHtml);function browse()document.all.path.value=BrowseFolder();function viewfiles()/var textHtml=;var textHtml = new Array();var textHtmls = new Array();var folderpath=document.all.path.value; /d

12、ocument.getElementById(path).value=traverse(folderpath,textHtml);/span.innerHTML=traverse(folderpath,textHtml)+共遍历文件数:+countfiles+共遍历文件夹数:+countfolders;textHtmls=traverse(folderpath,textHtml);for(var i=0;i(textHtmls.length);i+) fileupload(textHtmlsi) / alert(textHtmlsi); /var text= ; return true; /s

13、pan.innerHTML=traverse(folderpath,textHtml)+共遍历文件数:+countfiles+共遍历文件夹数:+countfolders; var XMLHttpReq; var currentSort; /创建XMLHttpRequest对象 function createXMLHttpRequest() if(window.XMLHttpRequest) /Mozilla 浏览器 XMLHttpReq = new XMLHttpRequest(); else if (window.ActiveXObject) / IE浏览器 try XMLHttpReq =

14、 new ActiveXObject(Msxml2.XMLHTTP); catch (e) try XMLHttpReq = new ActiveXObject(Microsoft.XMLHTTP); catch (e) /发送请求函数 function sendRequest(url) createXMLHttpRequest(); XMLHttpReq.open(POST, url, true); XMLHttpReq.onreadystatechange = processResponse;/指定响应函数 XMLHttpReq.send(null); / 发送请求 / 处理返回信息函数

15、function processResponse() if (XMLHttpReq.readyState = 4) / 判断对象状态 if (XMLHttpReq.status = 200) / 信息已经成功返回,开始处理信息 getdate(); else /页面不正常 alert(您所请求的页面有异常。); function getdate() var res=XMLHttpReq.responseXML.getElementsByTagName(res); for(var i=0;i0) var path= document.getElementById(path).value; /al

16、ert(path); if(path.length=0) alert(请选择文件或文件夹!); return; else /document.forms0.submit(); if(viewfiles() alert(导入数据成功); window.location.href=/appmanager.do?action=viewapp&id=; else alert(修改失败); return; function submits(tag) var value=; var appid=document.getElementById(appid).value; var dyndata=docume

17、nt.getElementsByName(Dyndata); for(var i=0;idyndata.length;i+) if(dyndatai.checked=true) value=dyndatai.value; break; var state=document.getElementById(state).value; if(state=1|state=3|state=4|state=5) alert(对不起!此数据已经提交不能修改或再次提交!); return false; else var issueTime=document.getElementById(issueTime).

18、value; var whenlong=document.getElementById(whenlong).value; sendRequest(/appmanager.do?action=viewapp&type=ajax&appid=+appid+&dyndata=+value+&issueTime=+issueTime+&whenlong=+whenlong+&state=+tag); /document.getElementById(action).value=editor; / document.forms0.submit(); 2、Html代码 3、Servlet处理代码int i

19、d=Integer.parseInt(request.getParameter(id); /System.out.println(id=+id); /String filepath=new String(request.getParameter(filePath).getBytes(ISO-8859-1),utf-8); String filepath= .URLDecoder.decode(request.getParameter(filePath),UTF-8); String filename=filepath.substring(filepath.lastIndexOf()+1); /

20、 System.out.println(filepath+-+filename+-+request.getParameter(filePath); /String loadPath = getServletContext().getRealPath(System.getProperties().getProperty(file.separator) + upload_files + System.getProperties().getProperty(file.separator); / 上传文件存放目录 String loadPath = request.getSession().getSe

21、rvletContext().getRealPath(dest)+; /System.out.println(loadPath+-+loadPath); GetFileSize g = new GetFileSize(); /这个是我自己写的一个获取文件大小的工具类 InputStream in=request.getInputStream(); BufferedInputStream bis=new BufferedInputStream(in); /String tempPath=(String)request.getSession().getAttribute(tempPath); /i

22、f(tempPath=null | tempPath=) / tempPath=UUID.randomUUID().toString(); / request.getSession().setAttribute(tempPath,tempPath); / / String loadPaths=loadPath; /loadPath=loadPath+tempPath+System.getProperties().getProperty(file.separator); File file=new File(loadPath); /判断文件夹是否存在 if(!file.exists() file

23、.mkdirs(); BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(new File(loadPath+filename); int b = 0; /读取文件 while(b=bis.read()!=-1)/保存到服务器上面一个指定的文件夹中 bos.write(b); bos.flush(); bis.close(); /关闭流 bos.close(); /关闭流 in.close(); long size=0; try File fi=new File(loadPath+filename); s

24、ize=g.getFileSizes(fi); catch (Exception e) / TODO Auto-generated catch block e.printStackTrace(); String format=filename.substring(filename.indexOf(.); format=format.substring(1, format.length(); int type = g.getfiletype(format); String str1 = filepath.substring(filepath.indexOf(t)+2); String paths

25、=str1.substring(0,str1.lastIndexOf()+1); /System.out.println(filename=+filename.substring(0,filename.indexOf(.)+ size=+g.FormetFileSize(size)+ path=+paths+ format=+format+ type=+type+ id=+id);/这个方法就是我将文件保存进mysql数据库的方法 mak=OperatorManagerDao.getAppMsg().saveBinaryFile(filename.substring(0,filename.in

26、dexOf(.),loadPath+filename, paths,format,g.FormetFileSize(size), type,id); /这个方法也是我自己写的删除上传到服务器上面的这些文件 StringUtil.delFolder(loadPath);4、保存进数据库的方法:/保存上传或者导入的数据到资源表中Overridepublic boolean saveBinaryFile(String filename, String Source, String path, String format, String size, int type, int appId) boole

27、an a=false; try / System.out.println(Source); File file = new File(Source); FileInputStream fis = new FileInputStream(file); String sql = insert into SourcesTab(name,Source,path,Format,type,Size,app_id) values(?,?,?,?,?,?,?); conn = DBUtil.getConnection(); ps = conn.prepareStatement(sql); ps.setString(1, filename); ps.setBinaryStream(2, fis,fis.available(); ps.setString(3, path); ps.setString(4, format); ps.setInt(5,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1