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

时间:2017-07-20 08:37:14

标签: c# flash asp.net-web-api

我想在浏览器中显示一个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;
    }

1 个答案:

答案 0 :(得分: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 width="550" height="400">
<param name="movie" value="http://localhost:50000/foobar/flashfile.swf">
<embed src="http://localhost:50000/foobar/flashfile.swf" width="550" height="400"></embed>
</object>

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