转自:http://blog.csdn.net/ctrl_shift_del/article/details/6277340

ServletActionContext.getServletContext().getResourceAsStream("/"+tempfile);

这是java加载资源的方法,所谓资源,实际上是任何一个文件,但特别的 是,getResourceAsStream这个方法不使用绝对路径,
而是使用相对于classpath环境变量的相对路径。

所 以,如果写:
  getResourceAsStream("/resource.xml");

则要保证classpath下有 resource.xml文件就能找到。

通常,开发环境下,src目录(也就是源代码所在的目录)是包含在classpath中的,
而 在tomcat下,classpath其一指向:WEB-INF/classes目录。

另:如需使用绝对路径则可使用方法:

 public InputStream getVoiceFile() throws FileNotFoundException {
return new FileInputStream("D:/test.wav");
}

下面看一个完整的项目相关代码(struts2应用):

action 中的java 部分代码:

 public InputStream getVoiceFile() throws FileNotFoundException {

            return new FileInputStream(this.getCurrentFileFullName());

               //return ServletActionContext.getServletContext().getResourceAsStream(this.getCurrentFileFullName());
  }     public String voice(){
    return "voice";
  } }

struts.xml中部分代码:

 <result name="voice" type="stream">
<!-- 下载文件类型 -->
<param name="contentType">audio/wav</param>
<param name="inputName">inputStream</param>
<!-- 下载的InputStream流,Struts2自己动对应Action中的getVoiceFile方法,该方法必须返回InputStream 类型 -->
<param name="inputName">voiceFile</param>
<param name="bufferSize">2048</param>
</result>

jsp页面部分代码:

 <s:iterator value="voiceList" status="index" id="fielInfo">
  <tr>     <td><s:property value="fileName"/></td>
    <td><embed src="Controller_voice.action?currentFileFullName=<s:property value="fileFullName" />" autostart=false /></td>   </tr>
</s:iterator>

最新文章

  1. zookeeper_service 出错 java.lang.NoClassDefFoundError: org/I0Itec/zkclient/exception/ZkNoNodeException
  2. web前端之HTML中元素的区分
  3. response 设置头的类型 (转)
  4. log4j配置说明
  5. eclipse工具背景色模板-程序员保护好自己的眼睛
  6. iOS开发 multipart 上传多张图片
  7. 为七牛云存储开发的PHP PEAR 包:Services_Qiniu
  8. wap网站safari浏览器和微信cooke不能登录问题
  9. zepto源码研究 - callback.js
  10. switch case异常处理机制
  11. 数据库管理工具神器-DataGrip,可同时管理多个主流数据库[SQL Server,MySQL,Oracle等]连接
  12. tomcat启动失败的一种可能性
  13. Django 跨域请求处理
  14. CentOS(Linux)中解决MySQL乱码
  15. 【Java并发.1】简介
  16. skynet 报错 skynet 服务缺陷 Lua死循环
  17. 14:super关键字
  18. Linux内核启动流程分析(一)【转】
  19. DotNetBar 使用笔记
  20. 前端开发工程师 - 06.Mini项目实战 - 项目简介

热门文章

  1. spring mvc实现修改+删除
  2. 基于TcpListener的web服务器
  3. C++ 四种强制类型转换
  4. curl模拟post请求
  5. 繁华模拟赛 ljw分雕塑
  6. 修改织梦默认提示&quot;dedecms提示信息!&quot;
  7. zoj.3868.GCD Expectation(数学推导&gt;&gt;容斥原理)
  8. Ubuntu 开机自启动工具 update-rd.d 使用详解
  9. myeclipse2014集成SVN
  10. android dialog 模拟新浪、腾讯title弹框效果