博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ssh上传下载 自己整理的。
阅读量:4036 次
发布时间:2019-05-24

本文共 4308 字,大约阅读时间需要 14 分钟。

 <!-- 会议纪要 -->
     <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";
  }
 }
具体的自己可以参考改写。   

     

转载地址:http://afjdi.baihongyu.com/

你可能感兴趣的文章
Log4j2 配置笔记(Eclipse+maven+SpringMVC)
查看>>
java设计模式之简单工厂模式
查看>>
struts2中constant参数设置
查看>>
Struts2中struts.multipart.maxSize设置
查看>>
CheckStyle插件在eclipse中的安装及配置
查看>>
PowerDesigner 导入数据库建表SQL脚本生成物理模型
查看>>
idea的xml配置中url显示:URI is not registered ( Setting | Project Settings | Schemas and DTDs )
查看>>
如何修改源码>重新打包>替换源文件
查看>>
@Slf4j注解的使用
查看>>
SpringBoot通过配置devtools实现热部署
查看>>
springboot+springsecurity+jwt进行系统权限开发
查看>>
使用轻量级工具emoji-java处理emoji表情字符
查看>>
排序算法的C语言实现C代码
查看>>
c语言快排函数调用方法模板
查看>>
c语言实现多行输入输出数据
查看>>
查找算法
查看>>
C语言单链表实现
查看>>
SQL基本命令集合整理
查看>>
QT中json的生成和解析
查看>>
std::function 和 std::bind 的简单例子
查看>>