Software Development DotNet ASP.NET - 12、Request
Created at 2013-01-08 Updated at 2018-05-03 Category Software Development
1、路径标识符。
http标准定为:
- “/”代表网站根目录。
- “../”代表上级目录。
- “./”代表当前目录。
Asp.net专用,所以要用在<asp: 控件中
- “~”代表当前应用根目录。
1 | <asp:HyperLink runat="server" NavigateUrl="~/a/b.aspx"></asp:HyperLink> |
“~”转换为html能用的相对于应用根路径,经过转换为根路径,Html才认。
1
Response.Write("<a href='"+VirtualPathUtility.ToAbsolute("~/a/b.aspx"));
2、VirtualPathUtility类的一些主要方法:
string AppendTrailingSlash(string virtualPath)
string Combine(string basePath,string relativePath)
string GetDirectory(string virtualPaht)
string MakeRelative(string fromPath,string toPath)
string ToAbsolute
3、Request是Page类的一个属性,所以在ashx中需要用context.Request
Request.AppRelativeCurrentExecutionFilePath
Request.PhysicalApplicationPath
Request.PhysicalPath
Request.RawUrl
Request.Url
Request.UrlReferrer
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21context.Response.ContentType = "image/JPEG";
string fullpath = HttpContext.Current.Server.MapPath("IMG_5433.JPG");
using (System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(fullpath))
{
using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap))
{
using (System.Drawing.Font font = new System.Drawing.Font("宋体", 30))
{
if (context.Request.UrlReferrer == null)
{
g.Clear(System.Drawing.Color.White);
g.DrawString("图片", font, System.Drawing.Brushes.Red, 0, 0);
}
else if(context.Request.UrlReferrer.Host!="localhost")
{
g.DrawString("仅供内部交流使用", font, System.Drawing.Brushes.Red, 0, 0);
}
bitmap.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
}
}
}