Struts2下读取声音文件流并返回至前台

来源:互联网 发布:node服务器和appache 编辑:程序博客网 时间:2024/05/19 00:14

项目中遇到直接读取声音文件时,对于绝对地址(如D:****\文件),w无法获取,而在浏览器直接输地址确可以。为了解决问题,下面采用流的方式返回前端。

Java代码———————————————————————————–
@ParentPackage(“tads-support”)
public class WavFileManage extends BaseAction {
private ByteArrayInputStream imageStream;
private static final long serialVersionUID = -4106065750866542811L;

public String image() throws IOException{    HttpServletRequest request = ServletActionContext.getRequest();    //获取webroot下的文件    String path   =   request.getParameter("filename");    //创建文件输入流    FileInputStream fis = new  FileInputStream(path);    //放入bufferedInputStream     BufferedInputStream bis=new BufferedInputStream(fis);    //定义ByteArrayOutStream    ByteArrayOutputStream output = new ByteArrayOutputStream();     int c=bis.read();//读取bis流中的下一个字节    while(c!=-1){        output.write(c);        c=bis.read();    }    bis.close();    imageStream = new ByteArrayInputStream(output.toByteArray());    return SUCCESS;}public ByteArrayInputStream getImageStream() {    return imageStream;}public void setImageStream(ByteArrayInputStream imageStream) {    this.imageStream = imageStream;}

}

struts.xml配置———————————————————————
《struts>
《package name=”tads-support” namespace=”/” extends=”tads-default”>
!– 返回声音流 –>
《action name=”image” class=”com.kthw.tads.action.WavFileManage” method=”image”>
《result name=”success” type=”stream”>
《param name=”contentType”>audio/wav 《param>
《param name=”inputName”>imageStream 《param>
《 param name=”bufferSize”>2048 《param>
《/result>
《/action>
《/package>
《/struts>
前端————————————————————————————————
《a href=”image.do?filename=D:******\” target=”_blank” >

阅读全文
1 0
原创粉丝点击