我们正在尝试从C#控制台应用程序在火狐浏览器中打开htm文件。htm文件应该将视频文件的名称作为查询字符串参数,以便可以在浏览器中回放该文件。现在,视频文件和htm都是C#控制台应用程序的本地文件。
我们使用了以下代码:
var playerFile = Path.Combine(folderPath, "player.htm");
var medianame = Path.GetFileNameWithoutExtension(mediaFilename) + ".theora.ogv";
var url = string.Format("{0}?name={1}", playerFile, medianame);
System.Diagnostics.Process.Start(@"C:\Program Files (x86)\Mozilla Firefox\firefox.exe", url);url的格式应为
file:///D:/Projects/Tester/bin/Debug/Content/player.htm?name=Promo39171369900.theora.ogv
但当firefox浏览器打开时,它的地址栏中会显示以下内容:
file:///D:/Projects/Tester/bin/Debug/Content/player.htm%3Fname=Promo%5B39171369900%5D.theora.ogv
从那以后?并且当在浏览器中打开时得到url编码,则它不能播放视频。如果更换了%3F和%5B%5D,文件将正常播放。
有人能提供任何帮助吗。
发布于 2012-07-16 23:56:45
请使用Server.UrlDecode方法解码您的url
或者尝试使用System.Uri.UnescapeDataString
发布于 2012-07-18 16:48:39
为了回答我自己的问题,我最终解决了这个问题,我使用一个批处理文件打开htm文件,并从C#应用程序调用批处理,将文件名作为参数传递给批处理。谢谢你的帮助。
https://stackoverflow.com/questions/11507889
复制相似问题