System.Web.HttpRequest.MapPath C# (CSharp) Method

MapPath() public method

public MapPath ( string virtualPath, string baseVirtualDir, bool allowCrossAppMapping ) : string
virtualPath string
baseVirtualDir string
allowCrossAppMapping bool
return string
		public string MapPath (string virtualPath, string baseVirtualDir, bool allowCrossAppMapping)
		{
			if (worker_request == null)
				throw HttpException.NewWithCode ("No HttpWorkerRequest", WebEventCodes.RuntimeErrorRequestAbort);

			if (virtualPath == null)
				virtualPath = "~";
			else {
				virtualPath = virtualPath.Trim ();
				if (virtualPath.Length == 0)
					virtualPath = "~";
			}

			if (!VirtualPathUtility.IsValidVirtualPath (virtualPath))
				throw HttpException.NewWithCode (String.Format ("'{0}' is not a valid virtual path.", virtualPath), WebEventCodes.RuntimeErrorRequestAbort);

			string appVirtualPath = HttpRuntime.AppDomainAppVirtualPath;
			if (!VirtualPathUtility.IsRooted (virtualPath)) {
				if (StrUtils.IsNullOrEmpty (baseVirtualDir))
					baseVirtualDir = appVirtualPath;
				virtualPath = VirtualPathUtility.Combine (VirtualPathUtility.AppendTrailingSlash (baseVirtualDir), virtualPath);
				if (!VirtualPathUtility.IsAbsolute (virtualPath))
					virtualPath = VirtualPathUtility.ToAbsolute (virtualPath, false);
			} else if (!VirtualPathUtility.IsAbsolute (virtualPath))
				virtualPath = VirtualPathUtility.ToAbsolute (virtualPath, false);

			bool isAppVirtualPath = String.Compare (virtualPath, appVirtualPath, RuntimeHelpers.StringComparison) == 0;
			appVirtualPath = VirtualPathUtility.AppendTrailingSlash (appVirtualPath);
			if (!allowCrossAppMapping){
				if (!StrUtils.StartsWith (virtualPath, appVirtualPath, true))
					throw new ArgumentException ("MapPath: Mapping across applications not allowed");
				if (appVirtualPath.Length > 1 && virtualPath.Length > 1 && virtualPath [0] != '/')
					throw HttpException.NewWithCode ("MapPath: Mapping across applications not allowed", WebEventCodes.RuntimeErrorRequestAbort);
			}
			
			if (!isAppVirtualPath && !virtualPath.StartsWith (appVirtualPath, RuntimeHelpers.StringComparison))
				throw new InvalidOperationException (String.Format ("Failed to map path '{0}'", virtualPath));
#if TARGET_JVM
			return worker_request.MapPath (virtualPath);
#else
			string path = worker_request.MapPath (virtualPath);
			if (virtualPath [virtualPath.Length - 1] != '/' && path [path.Length - 1] == System.IO.Path.DirectorySeparatorChar)
				path = path.TrimEnd (System.IO.Path.DirectorySeparatorChar);
			return path;
#endif
		}

Same methods

HttpRequest::MapPath ( string virtualPath ) : string

Usage Example

Example #1
0
 public static int AddTalentDocument(HttpRequest req, ref string message, ref string  forwardurl)
 {
     if (req.Files[0].ContentLength != 0)
     {
         Model.TB_RC_TalentDocument model = new Model.TB_RC_TalentDocument();
         model.TD_CB_No = Convert.ToInt32(Common.Constants.getReqValue(req, "CB_No"));
         model.TD_TI_No = Convert.ToInt32(Common.Constants.getReqValue(req, "TI_No"));
         forwardurl = "TalentInfo/TalentDocument.aspx?CB_No=" + model.TD_CB_No + "&TI_No=" + model.TD_TI_No;
         var tmpext = Common.Constants.GetFileExt(req.Files[0].FileName);
         string filedir = req.MapPath("newImages") + "\\";
         string filename = DateTime.Now.ToString("yyyy-MM-dd_HH_mm_ss") + Common.Constants.getGuid() + "." + tmpext;
         req.Files[0].SaveAs(filedir + filename);
         model.TD_DocName = System.IO.Path.GetFileName(req.Files[0].FileName);
         model.TD_docPath = filename;
         model.TD_CreateDate = DateTime.Now;
         model.TD_CreatePer = "";
         tddb.Add(model); 
         message = "添加文档成功";
        
     }
     else
     { 
         message = "文件内容为空" ;
         return Common.Constants.ERR;
     }
     return Common.Constants.OK;
 }
All Usage Examples Of System.Web.HttpRequest::MapPath