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

上传人:b****6 文档编号:5986824 上传时间:2023-01-02 格式:DOCX 页数:14 大小:270.77KB
下载 相关 举报
js+jsp+servlet实现一键上传文件夹中的所有文件.docx_第1页
第1页 / 共14页
js+jsp+servlet实现一键上传文件夹中的所有文件.docx_第2页
第2页 / 共14页
js+jsp+servlet实现一键上传文件夹中的所有文件.docx_第3页
第3页 / 共14页
js+jsp+servlet实现一键上传文件夹中的所有文件.docx_第4页
第4页 / 共14页
js+jsp+servlet实现一键上传文件夹中的所有文件.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

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

《js+jsp+servlet实现一键上传文件夹中的所有文件.docx》由会员分享,可在线阅读,更多相关《js+jsp+servlet实现一键上传文件夹中的所有文件.docx(14页珍藏版)》请在冰豆网上搜索。

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

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

JS+JSP+SERVLET实现一键上传文件夹下面的所有文件到数据库中

1、页面的Js代码:

functionfileupload(filepath){

if(filepath!

=""){

sendFileToServer(filepath);

}

else{

alert("请选择要上传的文件!

");

}

}

functioncallback(){

if(xmlhttp.readyState==4){

varresponseText=xmlhttp.responseText;

}

}

functionsendByteStreamToServer(stream,url){

if(window.XMLHttpRequest){

xmlhttp=newXMLHttpRequest();

if(xmlhttp.overrideMimeType){

xmlhttp.overrideMimeType("text/xml")

}

}elseif(window.ActiveXObject){

varactivexName=["MSXML2.XMLHTTP","Microsoft.XMLHTTP"];

for(vari=0;i

try{

xmlhttp=newActiveXObject(activexName[i]);

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);

}

functionsendFileToServer(filePath){

varfilepath=encodeURI(encodeURI(filePath));

  varstream=newActiveXObject("ADODB.Stream");

  stream.Type=1;

stream.Open();

stream.Position=0;//指定或返加对像内数据的当前指针。

stream.LoadFromFile(filePath)//将FileName指定的文件装入对像中,参数FileName为指定的用户名。

stream.Position=0;

varid=document.getElementById("appid").value;

sendByteStreamToServer(stream,"<%=request.getContextPath()%>/appmanager.do?

action=importdate&tag=3&cmd=yhjzqywGetDatazz&filePath="+filepath+"&id="+id);

  stream.Close();

}

varcountfiles=0;

varcountfolders=0;

//用于打开浏览对话框,选择路径

functionBrowseFolder(){

try{

varMessage="请选择文件夹";//选择框提示信息

varShell=newActiveXObject("Shell.Application");

varFolder=Shell.BrowseForFolder(0,Message,0x0040,0x11);//起始目录为:

我的电脑

//varFolder=Shell.BrowseForFolder(0,Message,0);//起始目录为:

桌面

if(Folder!

=null){

Folder=Folder.items();//返回FolderItems对象

Folder=Folder.item();//返回Folderitem对象

Folder=Folder.Path;//返回路径

if(Folder.charAt(Folder.length-1)!

="\\"){

Folder=Folder+"\\";

}

//document.all.getfolder.value=Folder;

returnFolder;

}else{

Folder="";

returnFolder;

}

}

catch(e){

alert(e.message+"11");

}

}

//用于遍历

functiontraverse(localPath,textHtml){

varfso=newActiveXObject("Scripting.FileSystemObject");

varcurrentFolder=fso.GetFolder(localPath);

varfileList=newEnumerator(currentFolder.files);

varsubFolderList="";

varfileHtml=textHtml;

varaFile;

for(;!

fileList.atEnd();fileList.moveNext())

{

countfiles++;

aFile=fileList.item();

//fileHtml+="filename:

"+aFile.Name.substring(0,aFile.Name.lastIndexOf("."))+","

//fileHtml+="文件属性:

"+aFile.Attributes+",";

//fileHtml+="创建日期:

"+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.ShortPath+",";

//fileHtml+="size:

"+aFile.Size+"
";

//fileHtml+="type:

"+aFile.Type+"
";

//fileHtml+="所在盘:

"+aFile.Drive+"


";

}

subFolderList=newEnumerator(currentFolder.SubFolders);

for(;!

subFolderList.atEnd();subFolderList.moveNext())

{

countfolders++;

//fileHtml+="chfile:

"+subFolderList.item().Path+"


";

fileHtml=traverse(subFolderList.item().Path,fileHtml)//递归遍历子文件夹

}

//fileHtml+="共遍历文件数:

"+countfiles+"
"+"共遍历文件夹数:

"+countfolders;

return(fileHtml);

}

functionbrowse(){

document.all.path.value=BrowseFolder();

}

functionviewfiles(){

//vartextHtml="";

vartextHtml=newArray();

vartextHtmls=newArray();

varfolderpath=document.all.path.value;

//document.getElementById("path").value=traverse(folderpath,textHtml);

//span.innerHTML=traverse(folderpath,textHtml)+"共遍历文件数:

"+countfiles+"
"+"共遍历文件夹数:

"+countfolders;

textHtmls=traverse(folderpath,textHtml);

for(vari=0;i<(textHtmls.length);i++){

fileupload(textHtmls[i])

//alert(textHtmls[i]);

//vartext='
';

}

returntrue;

//span.innerHTML=traverse(folderpath,textHtml)+"共遍历文件数:

"+countfiles+"
"+"共遍历文件夹数:

"+countfolders;

}

varXMLHttpReq;

varcurrentSort;

//创建XMLHttpRequest对象

functioncreateXMLHttpRequest(){

if(window.XMLHttpRequest){//Mozilla浏览器

XMLHttpReq=newXMLHttpRequest();

}

elseif(window.ActiveXObject){//IE浏览器

try{

XMLHttpReq=newActiveXObject("Msxml2.XMLHTTP");

}catch(e){

try{

XMLHttpReq=newActiveXObject("Microsoft.XMLHTTP");

}catch(e){}

}

}

}

//发送请求函数

functionsendRequest(url){

createXMLHttpRequest();

XMLHttpReq.open("POST",url,true);

XMLHttpReq.onreadystatechange=processResponse;//指定响应函数

XMLHttpReq.send(null);//发送请求

}

//处理返回信息函数

functionprocessResponse(){

if(XMLHttpReq.readyState==4){//判断对象状态

if(XMLHttpReq.status==200){//信息已经成功返回,开始处理信息

getdate();

}else{//页面不正常

alert("您所请求的页面有异常。

");

}

}

}

functiongetdate(){

varres=XMLHttpReq.responseXML.getElementsByTagName("res");

for(vari=0;i

varmsg=res[i].firstChild.data;

//alert("---"+msg);

if(msg>0){

varpath=document.getElementById("path").value;

//alert(path);

if(path.length==0){

alert("请选择文件或文件夹!

");

return;

}else{

//document.forms[0].submit();

if(viewfiles()){

alert("导入数据成功");

window.location.href="<%=request.getContextPath()%>/appmanager.do?

action=viewapp&id=<%=id%>";

}

}

}else{

alert("修改失败");

return;

}

}

}

functionsubmits(tag){

varvalue="";

varappid=document.getElementById("appid").value;

vardyndata=document.getElementsByName("Dyndata");

for(vari=0;i

if(dyndata[i].checked==true){

value=dyndata[i].value;

break;

}

}

varstate=document.getElementById("state").value;

if(state==1||state==3||state==4||state==5){

alert("对不起!

此数据已经提交不能修改或再次提交!

");

returnfalse;

}else{

varissueTime=document.getElementById("issueTime").value;

varwhenlong=document.getElementById("whenlong").value;

sendRequest("<%=request.getContextPath()%>/appmanager.do?

action=viewapp&type=ajax&appid="+appid+"&dyndata="+value+"&issueTime="+issueTime+"&whenlong="+whenlong+"&state="+tag);

//document.getElementById("action").value="editor";

//document.forms[0].submit();

}

}

2、Html代码

3、Servlet处理代码

intid=Integer.parseInt(request.getParameter("id"));

//System.out.println("id========"+id);

//Stringfilepath=newString(request.getParameter("filePath").getBytes("ISO-8859-1"),"utf-8");

Stringfilepath=.URLDecoder.decode(request.getParameter("filePath"),"UTF-8");

Stringfilename=filepath.substring(filepath.lastIndexOf("\\")+1);

//System.out.println(filepath+"--------"+filename+"-----------"+request.getParameter("filePath"));

//StringloadPath=getServletContext().getRealPath(System.getProperties().getProperty("file.separator"))+"upload_files"+System.getProperties().getProperty("file.separator");//上传文件存放目录

StringloadPath=request.getSession().getServletContext().getRealPath("dest")+"\\";

//System.out.println(loadPath+"--------"+loadPath);

GetFileSizeg=newGetFileSize();//这个是我自己写的一个获取文件大小的工具类

InputStreamin=request.getInputStream();

BufferedInputStreambis=newBufferedInputStream(in);

//StringtempPath=(String)request.getSession().getAttribute("tempPath");

//if(tempPath==null||tempPath==""){

//tempPath=UUID.randomUUID().toString();

//request.getSession().setAttribute("tempPath",tempPath);

//}

//StringloadPaths=loadPath;

//loadPath=loadPath+tempPath+System.getProperties().getProperty("file.separator");

Filefile=newFile(loadPath);

//判断文件夹是否存在

if(!

file.exists()){

file.mkdirs();

}

BufferedOutputStreambos=newBufferedOutputStream(newFileOutputStream(newFile(loadPath+filename)));

intb=0;

//读取文件

while((b=bis.read())!

=-1){

//保存到服务器上面一个指定的文件夹中

bos.write(b);

bos.flush();

}

bis.close();//关闭流

bos.close();//关闭流

in.close();

longsize=0;

try{

Filefi=newFile(loadPath+filename);

size=g.getFileSizes(fi);

}catch(Exceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

Stringformat=filename.substring(filename.indexOf("."));

format=format.substring(1,format.length());

inttype=g.getfiletype(format);

Stringstr1=filepath.substring(filepath.indexOf("t\\")+2);

Stringpaths=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.indexOf(".")),loadPath+filename,paths,format,g.FormetFileSize(size),type,id);

//这个方法也是我自己写的删除上传到服务器上面的这些文件

StringUtil.delFolder(loadPath);

4、保存进数据库的方法:

//保存上传或者导入的数据到资源表中

@Override

publicbooleansaveBinaryFile(Stringfilename,StringSource,Stringpath,

Stringformat,Stringsize,inttype,intappId){

booleana=false;

try{

//System.out.println(Source);

Filefile=newFile(Source);

FileInputStreamfis=newFileInputStream(file);

Stringsql="insertintoSourcesTab(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