private static string GetServerPath(SaveFileInput input) { if (input.ApiEnabled) { return(input.Request.Request.Url.Scheme + "://" + input.Request.Request.Url.Authority); } return(string.Empty); }
/// <summary> /// This version is not for web api /// </summary> /// <param name="input"></param> /// <returns></returns> public static SaveFileOutput SaveFile(SaveFileInput input) { var relativeFolder = "/" + input.StaticFolder; var serverRoute = input.RootPath; var fileAbsoluteFolder = serverRoute + input.StaticFolder; var extension = Path.GetExtension(input.File.FileName); var uniqueFileName = Guid.NewGuid().ToString("N").Substring(0, 10); var storeFileName = uniqueFileName + extension; var sizes = new Dictionary <string, string>(); using (var stream = input.File.InputStream) { if (!Directory.Exists(fileAbsoluteFolder)) { Directory.CreateDirectory(fileAbsoluteFolder); } var relativeFileFolder = relativeFolder + "/" + input.UniqueFolder; var fileAbsoluteDirectory = fileAbsoluteFolder + "\\" + input.UniqueFolder; if (!Directory.Exists(fileAbsoluteDirectory)) { Directory.CreateDirectory(fileAbsoluteDirectory); } if (input.ClearFolder) { ClearContents(fileAbsoluteDirectory); } var imgLocation = fileAbsoluteDirectory + "\\" + storeFileName; File.WriteAllBytes(imgLocation, ReadFully(stream)); var fileLocation = GetServerPath(input) + relativeFileFolder + "/" + storeFileName; //Optimizations if (input.OptimizationOptions != null && input.OptimizationOptions.Optimize) { foreach (var optimizationOptionsSize in input.OptimizationOptions.Sizes) { var fixedSize = optimizationOptionsSize.Split('x'); var leftSide = int.Parse(fixedSize[0]); var rightSide = int.Parse(fixedSize[1]); var img = ReziseImg(leftSide, rightSide, imgLocation, fileAbsoluteDirectory + "\\"); if (input.OptimizationOptions.Optimize) { if (Path.GetExtension(img.FileName) != ".gif") { OptimizeImg(img.FileLocation); } } sizes.Add(optimizationOptionsSize, GetServerPath(input) + relativeFileFolder + "/" + img.FileName); } if (input.OptimizationOptions.Optimize) { if (Path.GetExtension(imgLocation) != ".gif") { OptimizeImg(imgLocation); } } } //!Optimizations return(new SaveFileOutput() { FileUrl = fileLocation, File = imgLocation, Sizes = sizes }); } }