ssh上传下载 自己整理的。

 <!-- 会议纪要 -->
     <action name="subjectRecordAction_*"    class="subjectRecordAction" method="{1}">
     
           <!-- 可以更改fileUpload拦截器的属性值来限定上传文件的内容类型,上传文件的大小 -->
<interceptor-ref name="defaultStack">
  <param name="allowedTypes">application/vnd.ms-powerpoint</param>
<!-- <param name="fileUpload.allowedTypes">image/png,image/gif,image/jpeg,image/jpg,image/x-png, 
image/pjpeg</param> -->
<param name="fileUpload.maximumSize">10*1024*1024</param>
</interceptor-ref>


         <!下载> 配置        
                 <result name="success" type="stream">
<param name="contentType">application/octet-stream;charset=utf-8</param>
<param name="inputName">inputStream</param>
<param name="contentDisposition">attachment;filename="${fileName}"</param>
<param name="bufferSize">8192</param>
</result>
<result name="fail">jsp/upload/submit_error.jsp</result>
     

     </action>


 public  String saveRecord() throws IOException{
 user  =  (User) this.getSession().getAttribute("user");
this.getRequest().setCharacterEncoding("utf-8");
this.getResponse().setCharacterEncoding("utf-8");
// System.out.println("file name:" + fileUploadFileName);//文件名称
// System.out.println("temp file name:" + fileUpload.getName());
//如果要存放到web服务器中本项目的某个目录下
//根据服务器的文件保存地址和原文件名创建目录文件全路径
//图片先存放在tomcat目录下
String destPath = ServletActionContext.getServletContext().getRealPath("/projectfiles")+"\\";
String filePath="projectfiles";//文件保存路径
//stytemMyfile  文件对象  subjectRecord  会议纪要
stytemMyfile.setOldName(fileUpload.getName());//自动生成的名字
stytemMyfile.setUploader(user.getUserAccount());
stytemMyfile.setUploadTime(new Date());
// System.out.println(destPath);
File diretoryFile = new File(destPath);
if(diretoryFile.exists()){
String[] fileNameStrings = diretoryFile.list();
List<String> fileNameList = new ArrayList<String>();
int sameNameFileCount = 0;
for(String fileNameItemString : fileNameStrings){
if(FileUtil.isSameFile(fileNameItemString,fileUploadFileName)){
sameNameFileCount = sameNameFileCount + 1;
}
fileNameList.add(fileNameItemString);
}
fileUploadFileName = FileUtil.reNameFile(fileUploadFileName, sameNameFileCount, fileNameList);
}
File dest = new File(destPath, fileUploadFileName); //服务器的文件
String path = filePath+"\\"+fileUploadFileName;  //真实路径
//System.out.println("filePath:"+path);
FileUtils.copyFile(fileUpload, dest);//完成了文件的拷贝工作
stytemMyfile.setId(UUIDGenerator.getUUID());
stytemMyfile.setNewName(fileUploadFileName);//直接存名字
stytemMyfile.setFileSize(dest.length());
stytemMyfile.setFileContentType("application/pdf");
stytemMyfile.setFileExtention(".pdf");
stytemMyfile.setDir(DateUtil.getToday());//得到当前日期
stytemMyfile.setUploader(user.getUserAccount());
stytemMyfile.setUploadTime(new Date());
systemMyFileService.save(stytemMyfile);
if(stytemMyfile!=null){
subjectRecord.setMyfileId(stytemMyfile.getId());
subjectRecord.setId(UUIDGenerator.getUUID());
subjectRecord.setUpdated(user.getUserAccount());
subjectRecord.setUpdatedate(new Date());
subjectRecordService.save(subjectRecord);
}
return "saveRecord";
    }





public String downloadFile() {
//System.out.println("执行下载");
try{
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
String id   = this.getRequest().getParameter("id");
subjectRecord =  subjectRecordService.get(SubjectRecord.class,id);
if(subjectRecord!=null)
{
stytemMyfile = systemMyFileService.get(SystemMyFile.class, subjectRecord.getMyfileId());
if(stytemMyfile!=null)
{
String filePathString = "projectfiles"+"\\"+stytemMyfile.getNewName();
setFileName(stytemMyfile.getNewName());
// System.out.println(filePathString);
InputStream fileStream = ServletActionContext.getServletContext().getResourceAsStream(filePathString);
if (fileStream != null) 
{
String agent = request.getHeader("USER-AGENT");
if (-1 != agent.indexOf("Firefox")) 
{
// Firefox
fileName = "=?UTF-8?B?" + (new String(org.apache.commons.codec.binary.Base64.encodeBase64(fileName.getBytes("UTF-8"))))
+ "?=";
} else if (-1 != agent.indexOf("Chrome")) 
{// Chrome
fileName = new String(fileName.getBytes(), "ISO8859-1");

} else 
{// IE7+
fileName = java.net.URLEncoder.encode(fileName, "UTF-8");
  fileName = StringUtils.replace(fileName, "+", "%20");// 替换空格
}
setFileName(fileName);
setInputStream(fileStream);
              }else{
              return "fail";
              }
   }
  }
return "success";
}catch (Exception e) {
  e.printStackTrace();
return "fail";
  }
 }
具体的自己可以参考改写。   

     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值