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 文件并在浏览器中显示的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 ASP.NET Core 3 中的中间 Web API 传递未更改的 HTTP 响应?
如何在 Delphi 2010 中将参数传递给 flash 电影?
如何在 Flash 中为 MovieClip 分配属性并在 Flex 中访问它们?