我正在编写一个继承自IHttpHandler的类,用于脚本和css组合。如果查询字符串定义了特殊参数,我只想合并。如果未定义此参数,那么我想写入文件的内容,就好像处理程序甚至不参与一样。传送文件的最佳方法是什么?
EIDT:
我遇到的一个问题是我在页面上有一个脚本标记,它引用了虚拟目录中的脚本,但我所在的页面位于应用程序的子目录中。
引用控制脚本的页面位于webserver / Admin / Default.aspx。当我在实现IHttpHandler的类中访问Request对象时,所有文件路径属性如下:webserver / Admin /〜/ SharedScripts / control.js。我该如何解决这个问题?
答案 0 :(得分:2)
您可以像这样检查'ProcessRequest(HttpContext context)'方法中的查询字符串参数:
context.Request.QueryString["paramertername"]
如果要按原样流式传输所请求的文件,则可以执行以下操作:
string physicalFilePath = context.Request.PhysicalPath;
string fileContent = string.Empty;
// Determine whether file exists
if (File.Exists(physicalFilePath))
{
// Read content from file
using (StreamReader streamReader = File.OpenText(physicalFilePath))
{
fileContent = streamReader.ReadToEnd();
}
}
context.Response.Output.Write(convertedFile);
context.Response.Flush();
PS:您还可以查看以下代码项目文章,以获得更全面的示例:http://www.codeproject.com/KB/locale/LocalizedScriptsAndStyles.aspx