无法在任何浏览器中打开嵌入JSP的SWF文件

时间:2014-10-07 12:09:49

标签: jsp flash swfobject

我编写了一个应用程序,其中SWF存储在我的本地驱动器上,例如C:/uploads/demo/demo.swf,我已经在我的JSP中嵌入了SWF文件。

但是当我运行我的应用程序时,SWF不会在任何浏览器中打开,但令人惊讶的是,当我在Eclipse的默认浏览器中运行时,SWF文件会打开。

出于安全原因,我知道应用程序无法访问其已部署文件夹之外的文件,但解决此问题的方法是什么。

这是我的代码

 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
 pageEncoding="ISO-8859-1" import="java.io.*"%>

 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"        "http://www.w3.org/TR/html4/loose.dtd">
  <html>

 <%final  String UPLOAD_DIRECTORY = "C:/uploads/";

 String uname=(String)session.getAttribute("user");
    //  out.print(uname);
        String uname1="";
     boolean flag = false;
    String path =UPLOAD_DIRECTORY+uname ;
//  out.print("                     "+path);

    File f = new File(path);
    if(f.exists())
    {
        File[] listOfFiles = f.listFiles();

    for (File file : listOfFiles) {
        String filename =file.getName();
        String ext = filename.substring(filename.indexOf("."));
    if (ext.contains(".swf")) {
        flag=true;
    System.out.println(file.getName());
    uname1=file.getPath().replace("\\", "/");
    uname1 = "file:///"+uname1;
    System.out.println(uname1);
        }
      }
   }
    else
    {
    out.println("Please Sign In after few days.................");  

    }

    if(flag==true)
    {

   %>
  <%}
    else
    {
        out.println("No file to show");
    }


   %>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

  <script type="text/javascript" src="swfobject.js"></script>


   <script type="text/javascript">
    swfobject.embedSWF("<%=uname1%>", "myContent", "800", "800", "9.0.0");
    </script>
    <title>Insert title here</title>
    </head>
    <body>






 <h1><a href="LogoutServlet">Logout</a>
 </h1>

 <div id="myContent">
  <p>Alternative content</p>
</div>

 </body>


</html>

如果有人可以提供帮助,我会非常感激。

1 个答案:

答案 0 :(得分:0)

将其放入webroot并通过http://...而不是file:///...引用它。或者创建一个servlet,从webroot外部的位置读取文件的字节,然后使用正确的mimetype将这些字节写入servlet响应。然后在嵌入代码中引用servlet地址。