ssh文件下载与上传细节


/**
	 * 文件上传
	 * @return
	 */
	private File schedule;
	private String scheduleFileName;
	private String scheduleContentType;
	@InputConfig(resultName="uploadInput")
	public String upload(){
		//将文件保存到硬盘中  位置Tomact .....WEB-INF/upload/
		String parentDir = ServletActionContext.getServletContext().getRealPath("WEB-INF/upload");
		//生成一个时间子目录
		String dir = MyStringUtils.TimeChildPath(parentDir);
		//生成一个随机文件名
		String fileName = MyStringUtils.getUUID()+"_"+scheduleFileName;
		//文件上传
		schedule.renameTo(new File(parentDir+File.separator+dir,scheduleFileName));
		//信息更新
		this.getModel().setUploadTime(new Date());
		this.getModel().setUploadFilename(fileName);
		this.getModel().setUploadPath(dir);
		this.getClassesService().updateUpload(this.getModel());
		return "upload";
	}
	/**
	 * 文件下载
	 * @return
	 */
	private InputStream inputStream;
	private String oldName;
	public String download() throws Exception{
		//1.获取用户信息
		CrmClasses findClasses = this.getClassesService().findById(this.getModel().getClassId());
		
		//2.得到下载路径
		String filePath = 
				ServletActionContext.getServletContext().getRealPath("WEB-INF/upload"); 
		oldName = findClasses.getUploadFilename().substring(findClasses.getUploadFilename().indexOf("_")+1);
		//给字节输入流赋值
		/*System.out.println(filePath);
		System.out.println(findClasses.getUploadPath());
		System.out.println(findClasses.getUploadFilename());*/
		inputStream = 
				new FileInputStream(filePath+File.separator
						+findClasses.getUploadPath()+File.separator
						+oldName);
		System.out.println(oldName);
		return "download";
	}


xml配置文件
			<!--上传成功  -->
			<result name="upload" type="redirectAction">classesAction_findAll</result>
			<!--上传不成功  -->
			<result name="uploadInput">/WEB-INF/pages/error.jsp</result>
			<!--文件下载  -->
			<result name="download" type="stream">
				<!-- 给stream类型注入参数,
				1。流的信息,
				2.告知浏览器下载的打开方式  attachment;filename=${} 固定格式
				必须配置该文件 
				<constant name="struts.ognl.allowStaticMethodAccess" value="true"/>
				3.告知浏览器响应正文的MIME类型 -->
				<param name="inputName">inputStream</param>
				<param name="contentDisposition">
				attachment;filename=${@java.net.URLEncoder@encode(oldName,"UTF-8")}
				</param>
				<param name="contentType">application/octet-stream</param>
			</result>	
前端代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/sys.css" type="text/css"/>
<title>班级管理</title>
</head>

<body>
<!--距离页面顶端5px-->
<table border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td class="topg"></td>
  </tr>
</table>
<s:form name="createForm" namespace="/" action="">
<table border="0" cellspacing="0" cellpadding="0" class="wukuang">
  <tr>
    <td width="1%"><img src="${pageContext.request.contextPath}/images/tleft.gif"/></td>
    <td width="20%" align="left">[班级管理]</td>
    <td width="42%"align="center"> </td>
    <td width="36%"align="right">
    	<%--添加班级  /html/classesm/addClass.jsp--%>
    	<s:a namespace="/" action="#">
    		<img src="${pageContext.request.contextPath}/images/button/tianjia.gif" class="img"/>
    	</s:a>
    	<%--高级查询 
        <a href="queryClass.html"><img src="${pageContext.request.contextPath}/images/button/gaojichaxun.gif" class="img"/></a>
    	--%>
    </td>
    <td width="1%"><img src="${pageContext.request.contextPath}/images/tright.gif"/></td>
  </tr>
</table>
</s:form>
<table border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td class="topg"></td>
  </tr>
</table>
<table border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td ><img src="${pageContext.request.contextPath}/images/result.gif"/></td>
  </tr>
</table>

<table width="97%" border="1">
<thead>
  <tr class="henglan" style="font-weight:bold;">
	<th width="150px" align="center">班级名称</th>
    <th width="200px" align="center">所属课程</th>
    <th width="80px" align="center">开班时间</th>
    <th width="80px" align="center">毕业时间</th>
    
    <th width="80px" align="center">状态</th>
    <th width="70px" align="center">学生总数</th>
    <th width="70px" align="center">升学数</th>
    <th width="70px" align="center">转班数</th>
    <th width="50px" align="center">编辑</th>
	<th width="50px" align="center">查看</th>
	<th align="center">课表</th>
  </tr>
  </thead>
  <tbody>
  <s:iterator value="#pageBean.data" var="v">
	  <tr class="tabtd2">
	    <td align="center"><s:property value="#v.name"/> </td>
	    <td align="center"><s:property value="#v.courseType.courseName"/> </td>
	    <td align="center"><s:date name="beginTime" format="yyyy-MM-dd"/></td>
	    <td align="center"><s:date name="endTime" format="yyyy-MM-dd"/></td>
	    <td align="center"><s:property value="#v.status"/></td>
	    <td align="center"><s:property value="#v.totalCount"/> </td>
	    <td align="center"><s:property value="#v.upgradeCount"/> </td>
	    <td align="center"><s:property value="#v.changeCount"/> </td>
	    <td align="center">
	    	<s:a namespace="/" action="classesAction_saveOruplaodUI">
	    		<s:param name="classId" value="#v.classId"/>
	    		<img src="${pageContext.request.contextPath}/images/button/modify.gif" class="img"/>
	    	</s:a>
	    </td>
		<td align="center">
			<s:a namespace="/" action="classesAction_showClass">
				<s:param name="classId" value="#v.classId"/>
				<img src="${pageContext.request.contextPath}/images/button/modify.gif" class="img"/>
			</s:a>
	    	
		</td>
		<td align="center" title="上次上传时间:2015-04-02"> 
			<s:a namespace="/" action="classesAction_uploadUI">
				<s:param name="classId" value="#v.classId"/>
				上传
			</s:a>  
			 <s:a namespace="/" action="classesAction_download">
				<s:param name="classId" value="#v.classId"/>
				下载
			</s:a> 
			
		</td>
	  </tr>
	 </s:iterator> 
  
  </tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0" align="center">
  <tr>
    <td align="center">
    	<span>第<s:property value="#pageBean.pageNum"/>/<s:property value="#pageBean.totalPage"/>页</span>
        <span>
        	<s:if test="#pageBean.pageNum >1">
        	<s:a action="classesAction_showPage" namespace="/">
        		<s:param name="pageNum" value="1"/>
        		[首页]
        	</s:a>  
        	
        	<s:a action="classesAction_showPage" namespace="/">
        		<s:param name="pageNum" value="#pageBean.pageNum-1"/>
        		[上一页]
        	</s:a>  
        	</s:if>
        	<s:if test="#pageBean.pageNum<#pageBean.totalPage">
        	<s:iterator begin="#pageBean.start" end="#pageBean.end" var="n">
        		<s:a action="classesAction_showPage" namespace="/">
        			<s:param name="pageNum" value="#n"/>
        			[<s:property value="#n"/>]
        		</s:a>  
        	</s:iterator>
        	<s:a action="classesAction_showPage" namespace="/">
        		<s:param name="pageNum" value="#pageBean.pageNum+1"/>
        		[下一页]
        	</s:a>  
        	<s:a action="classesAction_showPage" namespace="/">
        		<s:param name="pageNum" value="#pageBean.totalPage"/>
        		[尾页]
        	</s:a>
            </s:if>
        </span>
    </td>
  </tr>
</table> 

 

</body>
</html>



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值