WebApi - 如何响应 Flash 文件并在浏览器中显示

Posted

技术标签:

【中文标题】WebApi - 如何响应 Flash 文件并在浏览器中显示【英文标题】:WebApi - How to respond with a flash file and display in browser 【发布时间】:2017-12-25 20:19:34 【问题描述】:

我想在浏览器中显示一个 Flash 文件。从动作返回图像有效(我可以在浏览器中看到图像)。但是当我尝试使用 flash 文件进行响应时,浏览器会尝试下载它。

这是我的行动:

    [HttpGet]
    [GET("file")]
    public HttpResponseMessage FlashFile()
    
        string filePath = HttpContext.Current.Server.MapPath(@"~/flashfile.swf");
        HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
        var stream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
        result.Content = new StreamContent(stream);
        result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/x-shockwave-flash");
        return result;
    

【问题讨论】:

浏览器不知道如何渲染对象。为此,您将需要端点。上面的内容保持原样,但您需要另一个返回带有指向 flash 文件端点的对象标记的 html,就像您通常在页面上呈现 flash 的方式一样 【参考方案1】:

我设法让它工作了。

您需要做的就是在<handlers> 下的网络配置中添加这一行:

<add name="FlashExtension" path="foobar/*.swf" verb="GET" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />

我把[GET("file")]改成了[GET("foobar/path.swf")]

并在我的 HTML 文件中使用了这个 URL,如下所示:

<object  >
<param name="movie" value="http://localhost:50000/foobar/flashfile.swf">
<embed src="http://localhost:50000/foobar/flashfile.swf"  ></embed>
</object>

这会使用 WebApi 在浏览器中显示我的 Flash 视频。

【讨论】:

以上是关于WebApi - 如何响应 Flash 文件并在浏览器中显示的主要内容,如果未能解决你的问题,请参考以下文章

Flash 中的空 xml 响应

如何通过 ASP.NET Core 3 中的中间 Web API 传递未更改的 HTTP 响应?

如何在 Delphi 2010 中将参数传递给 flash 电影?

如何在 Flash 中为 MovieClip 分配属性并在 Flex 中访问它们?

我如何以角度动态化我的 Flash 消息。消息必须来自 API 响应

如何在 Flash 中创建一个音乐播放器来创建音频文件的波形?