java删除通用方法_java文件上传、删除、下载的通用方法总结.doc

41528d3028836879cd698677c3999917.gifjava文件上传、删除、下载的通用方法总结.doc

最近在写文件的上传,删除,下载,等功能,项目开发已经完成,功能已经实现现在总结下来,供初学者参考,也是给自己留一个备份。(怕以后在写的时候忘了,呵呵)那就先从上传说起,我用的是Strut2写的上传:先写一下前台的jsp代码BODY体里面基本上就是这么写的,当然这只是点单的,只写了一个上传框和一个保存按钮和一个取消按钮。保存我直接用了,至于其他的js页面限制,这个好写,我也就不多写了。取消的话我写一下,之前这个我也不会,就是取消的时候,清空file框里的文件,在百度上查了一下,找到了解决方法,也就顺便粘在这里。这段代码是写在js里的代码如下:functionshangchuanquxiao(){//取消的方法varwho=document.getElementById(“upload“);varwho2=who.cloneNode(false);who2.οnchange=who.onchange;//eventsarenotclonedwho.parentNode.replaceChild(who2,who);}这段代码是可行的,但不知道是不是精炼的写好jsp的代码,现在写后台的action代码:为了方便代码整体粘贴方便快捷,我先把整体代码写出来,后面在做解释。一些简单的就直接在注释中解释了publicclassupload{privatestaticfinallongserialVersionUID=1L;privateFileupload;//实际上传文件privateStringuploadFileName;//上传文件名privateStringuploadContentType;//上传文件类型//首先setget封装这四个属性/***上传文件的action*@throwsIOException*/publicStringupload()throwsIOException{StringtargetDirectory=ServletActionContext.getServletContext().getRealPath(““)+“\\wenjian\\upwenjian\\“;//这个是你要把文件上传到服务器具体的具体位置,这个文件夹可以在服务器中存在,也可以是不存在的,如果是不存在的,在面的代码会在服务器中自动创建此文件路径的。FileimageFile=newFile(targetDirectory);if(!imageFile.exists()){//======验证文件夹在服务器中是否存在newFile(targetDirectory).mkdirs();//如果此文件夹不存在,自动创建此文件夹}//文件夹创建好以后,就可以上传文件到你指定的文件目录了。//在上传文件的时候,你可能会有需求是,要求那些文件可以上传,那些文件不可以上传,这个其实,我也不是很会,我这个办法只能说是可行,但不一定是简单有效的方法。//1、可以得到文件的名字,通过split(“.”)的方式截取后缀,验证后缀。//2、也可以得到文件的类型,然后直接验证文件的类型。if(upload!=null){Stringsigns=“”;StringfileName=uploadFileName;//上传文件名String[]st=fileName.split(“\\.“);for(inti=0;ifm=newArrayList();fm=uploadservices.queryById(list.get(z).toString());//此service是我自己写的service,里面的功能很简单,就是通过ID获得,对应的服务器中文件的路径fileNames.add(fm.getPath())}//==========================多文件压缩成zip包下载测试========================================//生成的ZIP文件名为个人用户IDStringtmpFileName=sid+“.zip“;StringFilePath=ServletActionContext.getServletContext().getRealPath(““)+“\\temp\\download\\“+sid+“\\“;byte[]buffer=newbyte[1024];StringstrZipPath=FilePath+tmpFileName;File[]filePath=newFile[list.size()];ZipOutputStreamout=newZipOutputStream(newFileOutputStream(strZipPath));//=====得到服务器的文件路径放到File数组里======for(intj=0;j0){out.write(buffer,0,len);}out.closeEntry();fis.close();}out.close();SimpleDateatsimpleDateat=newSimpleDateat(“yyyy-MM-dd“);StringfileName=simpleDateat.at(newDate())+“.zip“;this.downFile(getResponse(),strZipPath,fileName);fs.close();}catch(Exceptione){//TODO:handleexceptionSystem.out.println(“压缩时出错了!“);e.printStackTrace();}finally{if(fs!=null){fs.close();}}returnret;}//多文件下载以上方法是把多个文件压缩为Zip包的过程。压缩完zip包以后,其实就是一个文件了,所有下载压缩包,和单个文件下载的写法是一样的,就是以下代码/***文件下载公用方法*@paramresponse*@paramstr*/privatevoiddownFile(HttpServletResponseresponse,Stringstr,StringfileName){try{Stringpath=str;Filefile=newFile(path);if(file.exists()){Streamins=newFileStream(path);BufferedStreambins=newBufferedStream(ins);//放到缓冲流里面OutputStreamouts=response.getOutputStream();//获取文件输出IO流BufferedOutputStreambouts=newBufferedOutputStream(outs);response.setContentType(“application/x-download“);//设置response内容的类型response.setHeader(“Content-disposition“,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值