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

解决直接读取声音文件的问题,通过Java代码将绝对路径的声音文件转换为流,并在前端展示。利用ServletActionContext获取请求,读取文件并转化为字节流,最后通过struts.xml配置返回音频流。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目中遇到直接读取声音文件时,对于绝对地址(如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" >
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值