Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jsp中的WMV文件下载_Java_Jsp - Fatal编程技术网

Java jsp中的WMV文件下载

Java jsp中的WMV文件下载,java,jsp,Java,Jsp,我有一个jsp,我在其中下载某些文件。。。它们是pdf、zip、ppt和wmv。除wmv外,所有文件类型都有效。我想不出这个问题。当我播放wmv文件时,我得到以下错误 Windows Media Player无法播放该文件。播放器可能不支持该文件类型,或者可能不支持用于压缩该文件的编解码器 在我的jps中,我编写了如下代码 response.setContentType("video/x-ms-wmv"); response.setCharacterEncoding("utf-8"); resp

我有一个jsp,我在其中下载某些文件。。。它们是pdf、zip、ppt和wmv。除wmv外,所有文件类型都有效。我想不出这个问题。当我播放wmv文件时,我得到以下错误

Windows Media Player无法播放该文件。播放器可能不支持该文件类型,或者可能不支持用于压缩该文件的编解码器

在我的jps中,我编写了如下代码

response.setContentType("video/x-ms-wmv");
response.setCharacterEncoding("utf-8");
response.setHeader("Content-disposition", "attachment; filename=123.wmv;");
String fileName                 = "/logs/164266828.wmv";
FileInputStream input           = new FileInputStream(fileName);
BufferedInputStream buf         = new BufferedInputStream(input);
int readBytes                   = 0;
ServletOutputStream myOut       = response.getOutputStream( );
while((readBytes = buf.read( )) != -1)
    myOut.write(readBytes);

任何输入或修改都会有很大帮助

不要使用JSP来传输二进制数据。JSP可能已经用模板文本(那些
之外的空格等)破坏了它。将此代码移动到servlet类的
doGet()
方法,并调用servlet而不是JSP


与具体问题无关,这些文件似乎是静态文件。如果完全控制服务器,则不一定需要servlet。例如,对于Tomcat,您可以将包含静态文件的文件夹作为另一个
添加到
server.xml
文件中

另见:

至少“response.setCharacterEncoding(“utf-8”);”是不需要的,甚至是有害的。好吧。。。但是您发现wmv文件类型的代码中缺少什么?谢谢你的评论。