`
duinibuhaome
  • 浏览: 40803 次
  • 性别: Icon_minigender_1
  • 来自: 太原
社区版块
存档分类
最新评论

Struts2 上传下载

    博客分类:
  • SSH2
 
阅读更多

页面

<form action="" method="" name="" enctype="multipart/form-data" >

<input type="file" name="file"/>

</form>

 

配置文件

<action name="addFile" class="类地址" method="对应方法">
      <param name="savePath">/imageUpload/file</param>
      <result name="success" type="redirect-action">
       fileList.action
      </result>
</action>

 

action

属性  起个名字叫file   struts2中您需要些3个属性   file   fileContentType   fileFileName

 private File file;//文件
 private String fileContentType;//
 private String fileFileName;
 private String savePath;//保存路径

//**********setter   and    getter**********//

public String addFile(){
  String paths=ServletActionContext.getServletContext().getRealPath(savePath);

  File saveDirectory=new File(paths);
  if(!saveDirectory.exists()){//检查文件夹是否存在  不存在则创建
   saveDirectory.mkdirs();
  }

  String names=fileFileName.substring(fileFileName.indexOf("."));//截取字符串

  DateFormat df=new SimpleDateFormat("yyMMddHHmmss");//格式化日期

  String saveName=df.format(new Date())+names;

  saveFile(new File(paths+"/"+saveName));

}

 

//上传文件

public void saveFile(File outputFile){
  try {
   FileOutputStream fos=new FileOutputStream(outputFile);
   BufferedOutputStream bos=new BufferedOutputStream(fos);
   
   FileInputStream fis=new FileInputStream(this.file);
   BufferedInputStream bis=new BufferedInputStream(fis);
   
   byte[] buffer=new  byte[1024];
   int length=-1;
   while((length=fis.read(buffer))!=-1){
    bos.write(buffer,0,length);
   }
   bos.close();
   fos.close();
   bis.close();
   fis.close();
  } catch (FileNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch(IOException e){
   e.printStackTrace();
  }
 }

 

//下载方法     三个参数   response丢想   路径filePath  文件名filename

public void httpStream(HttpServletResponse response,String filePath,String filename)throws Exception
 {
  FileInputStream fileInputStream=new FileInputStream(filePath);
  BufferedInputStream br=new BufferedInputStream(fileInputStream);
  byte[] buf=new byte[1024];
  int len=0;
  response.reset();
  response.setContentType("application/x-msdownload");
  response.setHeader("Content-Disposition","attachment:filename="+URLEncoder.encode(filename,"utf-8"));
  OutputStream out=response.getOutputStream();
  while((len=br.read(buf))>0)
   out.write(buf,0,len);
  br.close();
  out.close();
  fileInputStream.close();
 }

 

从网上摘的代码,记录下来,万一以后忘了就不好了

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics