public static string SaveFile(HttpPostedFile file) { string uploadDirectory = "111"; GetConfig("UploadDirectory", ref uploadDirectory); string directoryName = HttpContext.Current.Request.PhysicalApplicationPath + uploadDirectory + "//"; if (!Directory.Exists(directoryName)) { Directory.CreateDirectory(directoryName); } string fileName = file.FileName.Substring(file.FileName.LastIndexOf("//") + 1); fileName = fileName.Replace(" ", "_").Replace("%", "-").Replace("#", "-").Replace("&", "-").Replace("'", "-"); // HttpUtility.UrlEncode(fileName);//.Replace(" ", "-"); string newFileName = fileName; int i = 1; while (File.Exists(directoryName + newFileName)) { newFileName = fileName.Insert(fileName.LastIndexOf("."), (i++).ToString()); } file.SaveAs(directoryName + newFileName); return newFileName; } public class Upload : IHttpHandler { public void ProcessRequest(HttpContext context) { //Utility.ValidateUser(); string error = string.Empty; string name = string.Empty; if (context.Request.Files.Count > 0) { HttpPostedFile file = context.Request.Files[0]; if (file.ContentLength > 0) { name = QS.QUtility.CommonOperation.SaveFile(file); } else { error = "The size of file is zero."; } } else { error = "No file found."; } string result = String.Format("{{ error:'{0}', name:'{1}'}}", error, name); //context.Response.ContentType = "application/json; charset=utf-8"; context.Response.Write(result); } public bool IsReusable { get { return false; } } } }