private bool CanSetSelectedImage(string value) { if (value == null) { return(false); } value = URIHelper.ConvertAbsUrlToTilda(value.ToLower()); if (value.EndsWith(".jpeg") || value.EndsWith(".jpg") || value.EndsWith(".png") || value.EndsWith(".gif") || value.EndsWith(".svg")) { if (File.Exists(URIHelper.ConvertToAbsPath(value))) { SelectedImage.Visible = true; return(true); } else { SelectedImage.Visible = false; } } else { SelectedImage.Visible = false; } return(false); }
protected void UploadFilesNow_Click(object sender, EventArgs e) { try { var field = GetField(); if (IsPostBack && Request.Files.Count > 0 && !hasRun) { hasRun = true; var index = 0; for (int i = 0; i < Request.Files.Count; i++) { var file = Request.Files[i]; if (string.IsNullOrEmpty(file.FileName)) { continue; } var fileInfo = (new System.IO.FileInfo(GetFolderPath() + file.FileName)); if (!fileInfo.Directory.Exists) { fileInfo.Directory.Create(); } if (fileInfo.Directory.Exists) { file.SaveAs(fileInfo.FullName); var filePath = URIHelper.ConvertAbsUrlToTilda(URIHelper.ConvertAbsPathToAbsUrl(fileInfo.FullName)).Replace("~", ""); if (!field.FieldAssociations.Any(j => j.MediaDetail.PathToFile == filePath)) { var fieldAssociation = new FieldAssociation(); fieldAssociation.MediaDetail = (MediaDetail)PagesMapper.CreateObject(MediaTypeID, MediasMapper.CreateObject(), AdminBasePage.SelectedMedia); fieldAssociation.MediaDetail.LinkTitle = fieldAssociation.MediaDetail.SectionTitle = fieldAssociation.MediaDetail.ShortDescription = fieldAssociation.MediaDetail.MainContent = fileInfo.Name; fieldAssociation.MediaDetail.PathToFile = filePath; fieldAssociation.MediaDetail.PublishDate = DateTime.Now; fieldAssociation.MediaDetail.CreatedByUser = fieldAssociation.MediaDetail.LastUpdatedByUser = FrameworkSettings.CurrentUser; fieldAssociation.MediaDetail.CachedVirtualPath = fieldAssociation.MediaDetail.CalculatedVirtualPath(); fieldAssociation.MediaDetail.LanguageID = SettingsMapper.GetSettings().DefaultLanguage.ID; field.FieldAssociations.Add(fieldAssociation); index++; var returnObj = BaseMapper.SaveDataModel(); } } } } SetValue(GetValue()); } catch (Exception ex) { } }
public void MoveFileManagerItem(string draggedItem, string droppedOn) { var draggedItemUriSegments = System.Web.HttpUtility.ParseQueryString(draggedItem); var droppedOnUriSegments = System.Web.HttpUtility.ParseQueryString(droppedOn); var draggedFile = draggedItemUriSegments["file"]; var draggedCurrPath = draggedItemUriSegments["currpath"]; var droppedCurrPath = droppedOnUriSegments["currpath"]; droppedCurrPath = URIHelper.ConvertAbsUrlToTilda(droppedCurrPath).Replace("\\", "/").Replace("//", "/").Replace("~/", "/"); if (!droppedCurrPath.Contains("/media/uploads")) { throw new Exception("You cannot move the item to this folder, you can only move it to folders under /media/uploads/"); } var toDirectory = URIHelper.BasePath + droppedCurrPath; if (draggedFile != "" && draggedFile != null) { var filePath = URIHelper.BasePath + draggedFile; if (File.Exists(filePath)) { var fileInfo = new FileInfo(filePath); File.Move(fileInfo.FullName, toDirectory + "\\" + fileInfo.Name); } } else if (draggedCurrPath != "" && draggedCurrPath != null) { var dirPath = URIHelper.BasePath + draggedCurrPath; if (Directory.Exists(dirPath)) { var dirInfo = new DirectoryInfo(dirPath); Directory.Move(dirInfo.FullName, toDirectory + "\\" + dirInfo.Name); } } }
public void LoadByVirtualPath(string virtualPath) { if ((!virtualPath.StartsWith("http")) && System.IO.File.Exists(HttpContext.Current.Server.MapPath(virtualPath))) { return; } currentVirtualPath = virtualPath; if (currentLanguage == null) { throw new Exception("Error loading default language"); } if ((currentVirtualPath == "~/") || currentVirtualPath == URIHelper.ConvertAbsUrlToTilda(URIHelper.ConvertToAbsUrl(currentLanguage.UriSegment))) { long version = 0; long.TryParse(HttpContext.Current.Request["version"], out version); currentMediaDetail = WebsitesMapper.GetWebsite(version); } else { currentMediaDetail = MediaDetailsMapper.GetByVirtualPath(currentVirtualPath); } if (currentMediaDetail == null) { return; } currentLanguage = currentMediaDetail.Language; FrameworkSettings.SetCurrentLanguage(currentMediaDetail.Language); //rootMedia = FrameworkSettings.RootMedia; //rootMediaDetail = FrameworkSettings.RootMediaDetail; currentMedia = currentMediaDetail.Media; }
public IHttpHandler GetHttpHandler(RequestContext requestContext) { RedisCacheHelper.SetRedisCacheConnectionString(AppSettings.RedisCacheConnectionString); FileCacheHelper.SetFileSystemCacheDirPath(AppSettings.FileSystemCacheDirPath); virtualPath = URIHelper.GetCurrentVirtualPath().ToLower(); var queryString = HttpContext.Current.Request.QueryString.ToString(); queryString = System.Web.HttpUtility.UrlDecode(queryString); if (!Request.Path.EndsWith("/") || ((virtualPath != "~/") && (!virtualPath.EndsWith("/")))) { var path = Request.Path + "/"; if (!string.IsNullOrEmpty(queryString)) { path = path + "?" + queryString; } HttpContext.Current.Response.RedirectPermanent(path); } Settings cmsSettings = null; bool isAttemptingAdminLogin = false; if ((virtualPath != "~/login/") && (virtualPath != "~/admin/") && string.IsNullOrEmpty(Request.QueryString["format"])) { cmsSettings = SettingsMapper.GetSettings(); if (cmsSettings != null) { var isSiteOnline = cmsSettings.IsSiteOnline(); if (isSiteOnline) { if (virtualPath.Contains(cmsSettings.SiteOfflineUrl)) { Response.Redirect("~/"); } AttemptToLoadFromCache(); } else { if (!virtualPath.Contains(cmsSettings.SiteOfflineUrl)) { Response.Redirect(cmsSettings.SiteOfflineUrl); } } } else { AttemptToLoadFromCache(); } } else { isAttemptingAdminLogin = true; } var languageSegment = FrameworkSettings.GetCurrentLanguage().UriSegment; if (LanguagesMapper.GetAllActive().Count() > 1 && !Request.Url.PathAndQuery.Contains($"/{languageSegment}/")) { var url = URIHelper.ConvertToAbsUrl("/" + languageSegment + Request.Url.PathAndQuery); Response.RedirectPermanent(url, true); } var segments = URIHelper.GetUriSegments(virtualPath).ToList(); string firstSegment = ""; if (segments.Count > 0) { firstSegment = segments[0]; var language = LanguagesMapper.GetAllActive().SingleOrDefault(i => i.UriSegment == firstSegment); if (language != null) { FrameworkSettings.SetCurrentLanguage(language); } } if (!isAttemptingAdminLogin && AppSettings.EnableUrlRedirectRules) { var path = virtualPath; if (!string.IsNullOrEmpty(queryString)) { path = path + "?" + queryString; } var redirectRule = UrlRedirectRulesMapper.GetRuleForUrl(path); if (redirectRule != null) { var newUrl = redirectRule.RedirectToUrl; if (newUrl.Contains("{")) { newUrl = MediaDetailsMapper.ParseSpecialTags(redirectRule, newUrl); } newUrl = URIHelper.ConvertToAbsUrl(newUrl); var possibleLoopRules = UrlRedirectRulesMapper.GetRulesFromUrl(URIHelper.ConvertAbsUrlToTilda(newUrl)); var foundActiveVirtualPath = MediaDetailsMapper.GetByVirtualPath(path); if (possibleLoopRules.Any()) { foreach (var rule in possibleLoopRules) { var returnObj = MediaDetailsMapper.DeletePermanently(rule); } } if (foundActiveVirtualPath != null) { var returnObj = MediaDetailsMapper.DeletePermanently(redirectRule); } if (Request.QueryString.Count > 0) { newUrl += "?" + Request.QueryString; } if (redirectRule.Is301Redirect) { Response.RedirectPermanent(newUrl); } else { Response.Redirect(newUrl); } } } if (!File.Exists(HttpContext.Current.Server.MapPath(virtualPath)) && !virtualPath.Contains(ParserHelper.OpenToken) && !virtualPath.Contains(ParserHelper.CloseToken)) { string viewPath = ""; long mediaDetailId = 0; long.TryParse(requestContext.HttpContext.Request["MediaDetailID"], out mediaDetailId); long mediaId = 0; long.TryParse(requestContext.HttpContext.Request["MediaID"], out mediaId); MediaDetail detail = null; if (mediaDetailId == 0 && mediaId == 0) { FrameworkSettings.Current = FrameworkBaseMedia.GetInstanceByVirtualPath(virtualPath, true); detail = (MediaDetail)FrameworkSettings.Current.CurrentMediaDetail; } else if (mediaDetailId != 0) { var mediaDetail = MediaDetailsMapper.GetByID(mediaDetailId); FrameworkSettings.Current = FrameworkBaseMedia.GetInstanceByMediaDetail(mediaDetail); detail = (MediaDetail)FrameworkSettings.Current.CurrentMediaDetail; } else if (mediaId != 0) { var media = MediasMapper.GetByID(mediaId); FrameworkSettings.Current = FrameworkBaseMedia.GetInstanceByMedia(media); detail = (MediaDetail)FrameworkSettings.Current.CurrentMediaDetail; } /*if (detail != null && !detail.CanUserAccessSection(FrameworkSettings.CurrentUser)) * { * FormsAuthentication.RedirectToLoginPage(); * }*/ /*if (detail != null) * { * var absUrlBase = URIHelper.ConvertAbsUrlToTilda(detail.AbsoluteUrl).Replace("~", ""); * var absPathBase = URIHelper.ConvertAbsUrlToTilda(Request.Url.AbsolutePath).Replace("~", ""); * * if (absUrlBase != absPathBase) * { * Response.Redirect(detail.AbsoluteUrl + Request.Url.Query); * } * }*/ if (detail != null) { if (detail.ForceSSL || AppSettings.ForceSSL) { URIHelper.ForceSSL(); } } else { var currentLanguageId = FrameworkSettings.GetCurrentLanguage().ID; var historyVersion = BaseMapper.GetDataModel().MediaDetails.FirstOrDefault(i => i.LanguageID == currentLanguageId && i.CachedVirtualPath == virtualPath && i.MediaType.ShowInSiteTree && i.HistoryVersionNumber != 0 && i.HistoryForMediaDetail != null); if (historyVersion != null && historyVersion.VirtualPath != historyVersion.HistoryForMediaDetail.VirtualPath) { var foundRedirectUrl = UrlRedirectRulesMapper.GetRuleForUrl(virtualPath); if (foundRedirectUrl == null) { var urlRedirectRule = UrlRedirectRulesMapper.CreateUrlRedirect(virtualPath, historyVersion.HistoryForMediaDetail.Media); if (urlRedirectRule != null) { var returnObj = UrlRedirectRulesMapper.Insert(urlRedirectRule); HttpContext.Current.Response.RedirectPermanent(historyVersion.HistoryForMediaDetail.CachedVirtualPath); } else { HttpContext.Current.Response.RedirectPermanent("/"); } } } else { HttpContext.Current.Response.RedirectPermanent("/"); } } if ((detail == null) || (!IsValidRequest(detail))) { detail = null; if (cmsSettings != null) { if (!string.IsNullOrEmpty(cmsSettings.PageNotFoundUrl)) { ErrorHelper.LogException(new Exception($"Page Not Found: {virtualPath}")); Response.Redirect(cmsSettings.PageNotFoundUrl); /*FrameworkSettings.CurrentFrameworkBaseMedia = null; * * FrameworkSettings.CurrentFrameworkBaseMedia = FrameworkBaseMedia.GetInstanceByVirtualPath(cmsSettings.PageNotFoundUrl, true); * detail = (MediaDetail)FrameworkSettings.CurrentFrameworkBaseMedia.CurrentMediaDetail; * * ErrorHelper.LogException(new Exception($"Page Not Found: {virtualPath}"));*/ //Response.StatusCode = 301; } } } if (detail != null) { var draft = detail.GetLatestDraft(); if (draft != null && (draft.PublishDate - detail.PublishDate) > TimeSpan.FromSeconds(10) && draft.CanRender) { var returnObj = draft.PublishLive(); if (!returnObj.IsError) { detail.RemoveFromCache(); draft.RemoveFromCache(); FrameworkSettings.Current = FrameworkBaseMedia.GetInstanceByMediaDetail(draft); detail = (MediaDetail)FrameworkSettings.Current.CurrentMediaDetail; } } if (detail.RedirectToFirstChild) { var child = detail.ChildMediaDetails.FirstOrDefault(); if (child != null) { var redirectPath = child.AutoCalculatedVirtualPath; if (!string.IsNullOrEmpty(queryString)) { redirectPath = redirectPath + "?" + queryString; } HttpContext.Current.Response.Redirect(redirectPath); } } viewPath = FrameworkSettings.Current.CurrentMediaDetail.Handler; if ((viewPath == null) || (viewPath.Trim() == "")) { viewPath = MediaTypesMapper.GetByID(FrameworkSettings.Current.CurrentMediaDetail.MediaTypeID).MediaTypeHandler; } viewPath = URIHelper.ConvertAbsUrlToTilda(viewPath); if (!string.IsNullOrEmpty(Request.QueryString["format"])) { FrontEndBasePage.HandleFormatQueryString(detail, Request.QueryString["format"], Request.QueryString["depth"]); } return(CreateInstanceFromVirtualPath(viewPath, typeof(BasePage))); } } return(new DefaultHttpHandler()); }
protected void Page_Load(object sender, EventArgs e) { if (FrameworkSettings.CurrentUser == null) { throw new Exception("You must be logged into the CMS inorder to access the file manager"); } strCmd = Request.QueryString["cmd"] + ""; strType = Request.QueryString["type"] + ""; strFolder = Request.QueryString["folder"] + ""; strFile = Request.QueryString["file"] + ""; strLang = Request.QueryString["lang"] + ""; //not used right now, but grab it strEditor = Request.QueryString["editor"] + ""; strCurrPath = Request.QueryString["currpath"] + ""; strProfile = Request.QueryString["profile"] + ""; baseUrl = Request.QueryString["BaseUrl"] + ""; var defaultRootPath = "/media/uploads/"; if (!FrameworkSettings.CurrentUser.IsInRole(RoleEnum.Developer)) { var requestPath = URIHelper.ConvertAbsUrlToTilda(strCurrPath).Replace("\\", "/").Replace("//", "/").Replace("~/", "/"); if (!requestPath.Contains(defaultRootPath)) { strCurrPath = defaultRootPath; } } if (string.IsNullOrEmpty(baseUrl)) { var protocal = (Request.IsSecureConnection) ? "https://" : "http://"; baseUrl = protocal + Request.Url.Authority; } if (!strCurrPath.StartsWith("http") && File.Exists(Server.MapPath(strCurrPath))) { var fileInfo = new FileInfo(Server.MapPath(strCurrPath)); var dir = fileInfo.Directory.FullName; var absUrl = URIHelper.ConvertAbsPathToAbsUrl(dir); strCurrPath = URIHelper.ConvertAbsUrlToTilda(absUrl); } if(strCurrPath.StartsWith("~/")) { strCurrPath = strCurrPath.Replace("~/", "/"); } if ((strCurrPath == "") || strCurrPath.Contains("//") || !Directory.Exists(Server.MapPath(strCurrPath))) strCurrPath = defaultRootPath; if (strCurrPath.Contains(baseUrl)) { strCurrPath = strCurrPath.Replace(baseUrl, ""); } strCurrPath = strCurrPath.Replace("/", "\\").Replace("\\\\", "\\"); // load config this.objConfig = new clsConfig(strProfile); //check inputs if (this.strCurrPath.Length > 0) { this.strCurrPath = this.strCurrPath.TrimEnd('\\'); if (!this.strCurrPath.EndsWith("\\")) this.strCurrPath = this.strCurrPath + "\\"; } //set the apply string, based on the passed type if (this.strType == "") { this.strType = "0"; } switch (this.strType) { case "1": this.strApply = "apply_img"; this.boolOnlyImage = true; this.strAllowedFileExt = this.objConfig.strAllowedImageExtensions; break; case "2": this.strApply = "apply_link"; this.strAllowedFileExt = this.objConfig.strAllowedAllExtensions; break; default: if (Convert.ToInt32(this.strType) >= 3) { this.strApply = "apply_video"; this.boolOnlyVideo = true; this.strAllowedFileExt = this.objConfig.strAllowedVideoExtensions; } else { this.strApply = "apply"; this.strAllowedFileExt = this.objConfig.strAllowedAllExtensions; } break; } //setup current link strCurrLink = "dialog.aspx?type=" + this.strType + "&editor=" + this.strEditor + "&lang=" + this.strLang + "&profile=" + this.strProfile + "&targetId=" + Request["targetId"]; switch (strCmd) { case "debugsettings": Response.Write("<style>"); Response.Write("body {font-family: Verdana; font-size: 10pt;}"); Response.Write(".table {display: table; border-collapse: collapse; margin: 20px; background-color: #e7e5e5;}"); Response.Write(".tcaption {display: table-caption; padding: 5px; font-size: 14pt; font-weight: bold; background-color: #9fcff7;}"); Response.Write(".tr {display: table-row;}"); Response.Write(".tr:hover {background-color: #f0f2f3;}"); Response.Write(".td {display: table-cell; padding: 5px; border: 1px solid #a19e9e;}"); Response.Write("</style>"); Response.Write("<div class=\"table\">"); //start table Response.Write("<div class=\"tcaption\">Operating Settings</div>"); //caption Response.Write("<div class=\"tbody\">"); //start body Response.Write("<div class=\"tr\">"); // start row Response.Write("<div class=\"td\"><b>AllowCreateFolder:</b></div>"); Response.Write("<div class=\"td\">" + this.objConfig.boolAllowCreateFolder + "</div>"); Response.Write("</div>"); //end row Response.Write("<div class=\"tr\">"); // start row Response.Write("<div class=\"td\"><b>AllowDeleteFile:</b></div>"); Response.Write("<div class=\"td\">" + this.objConfig.boolAllowDeleteFile + "</div>"); Response.Write("</div>"); //end row Response.Write("<div class=\"tr\">"); // start row Response.Write("<div class=\"td\"><b>AllowDeleteFolder:</b></div>"); Response.Write("<div class=\"td\">" + this.objConfig.boolAllowDeleteFolder + "</div>"); Response.Write("</div>"); //end row Response.Write("<div class=\"tr\">"); // start row Response.Write("<div class=\"td\"><b>AllowUploadFile:</b></div>"); Response.Write("<div class=\"td\">" + this.objConfig.boolAllowUploadFile + "</div>"); Response.Write("</div>"); //end row Response.Write("<div class=\"tr\">"); // start row Response.Write("<div class=\"td\"><b>MaxUploadSizeMb:</b></div>"); Response.Write("<div class=\"td\">" + this.objConfig.intMaxUploadSizeMb + "</div>"); Response.Write("</div>"); //end row Response.Write("<div class=\"tr\">"); // start row Response.Write("<div class=\"td\"><b>AllowedAllExtensions:</b></div>"); Response.Write("<div class=\"td\">" + this.objConfig.strAllowedAllExtensions + "</div>"); Response.Write("</div>"); //end row Response.Write("<div class=\"tr\">"); // start row Response.Write("<div class=\"td\"><b>AllowedFileExtensions:</b></div>"); Response.Write("<div class=\"td\">" + this.objConfig.strAllowedFileExtensions + "</div>"); Response.Write("</div>"); //end row Response.Write("<div class=\"tr\">"); // start row Response.Write("<div class=\"td\"><b>AllowedImageExtensions:</b></div>"); Response.Write("<div class=\"td\">" + this.objConfig.strAllowedImageExtensions + "</div>"); Response.Write("</div>"); //end row Response.Write("<div class=\"tr\">"); // start row Response.Write("<div class=\"td\"><b>AllowedMiscExtensions:</b></div>"); Response.Write("<div class=\"td\">" + this.objConfig.strAllowedMiscExtensions + "</div>"); Response.Write("</div>"); //end row Response.Write("<div class=\"tr\">"); // start row Response.Write("<div class=\"td\"><b>AllowedMusicExtensions:</b></div>"); Response.Write("<div class=\"td\">" + this.objConfig.strAllowedMusicExtensions + "</div>"); Response.Write("</div>"); //end row Response.Write("<div class=\"tr\">"); // start row Response.Write("<div class=\"td\"><b>AllowedVideoExtensions:</b></div>"); Response.Write("<div class=\"td\">" + this.objConfig.strAllowedVideoExtensions + "</div>"); Response.Write("</div>"); //end row Response.Write("<div class=\"tr\">"); // start row Response.Write("<div class=\"td\"><b>BaseURL:</b></div>"); Response.Write("<div class=\"td\">" + this.objConfig.strBaseURL + "</div>"); Response.Write("</div>"); //end row Response.Write("<div class=\"tr\">"); // start row Response.Write("<div class=\"td\"><b>DocRoot:</b></div>"); Response.Write("<div class=\"td\">" + this.objConfig.strDocRoot + "</div>"); Response.Write("</div>"); //end row Response.Write("<div class=\"tr\">"); // start row Response.Write("<div class=\"td\"><b>ThumbPath:</b></div>"); Response.Write("<div class=\"td\">" + this.objConfig.strThumbPath + "</div>"); Response.Write("</div>"); //end row Response.Write("<div class=\"tr\">"); // start row Response.Write("<div class=\"td\"><b>ThumbURL:</b></div>"); Response.Write("<div class=\"td\">" + this.objConfig.strThumbURL + "</div>"); Response.Write("</div>"); //end row Response.Write("<div class=\"tr\">"); // start row Response.Write("<div class=\"td\"><b>UploadPath:</b></div>"); Response.Write("<div class=\"td\">" + this.objConfig.strUploadPath + "</div>"); Response.Write("</div>"); //end row Response.Write("<div class=\"tr\">"); // start row Response.Write("<div class=\"td\"><b>UploadURL:</b></div>"); Response.Write("<div class=\"td\">" + this.objConfig.strUploadURL + "</div>"); Response.Write("</div>"); //end row Response.Write("<div class=\"tr\">"); // start row Response.Write("<div class=\"td\"><b>FillSelector:</b></div>"); Response.Write("<div class=\"td\">" + this.objConfig.strFillSelector + "</div>"); Response.Write("</div>"); //end row Response.Write("<div class=\"tr\">"); // start row Response.Write("<div class=\"td\"><b>PopupCloseCode:</b></div>"); Response.Write("<div class=\"td\">" + this.objConfig.strPopupCloseCode + "</div>"); Response.Write("</div>"); //end row Response.Write("</div>"); //end body Response.Write("</div>"); //end table Response.End(); break; case "createfolder": try { strFolder = Request.Form["folder"] + ""; //forge ahead without checking for existence //catch will save us Directory.CreateDirectory(this.objConfig.strUploadPath + "\\" + strFolder); Directory.CreateDirectory(this.objConfig.strThumbPath + "\\" + strFolder); // end response, since it's an ajax call Response.End(); } catch { //TODO: write error } break; case "upload": strFolder = Request.Form["folder"] + ""; HttpPostedFile filUpload = Request.Files["file"]; string strTargetFile; string strThumbFile; //check file was submitted if ((filUpload != null) && (filUpload.ContentLength > 0)) { var name = new FileInfo(filUpload.FileName).Name.ToLower(); strTargetFile = this.objConfig.strUploadPath + this.strFolder + name; strThumbFile = this.objConfig.strThumbPath + this.strFolder + name; filUpload.SaveAs(strTargetFile); /*if (this.isImageFile(strTargetFile)) { this.createThumbnail(strTargetFile, strThumbFile); }*/ } // end response if (Request.Form["fback"] == "true") { Response.Redirect(this.strCurrLink); } else { Response.End(); } break; case "download": FileInfo objFile = new FileInfo(this.objConfig.strUploadPath + "\\" + this.strFile); Response.ClearHeaders(); Response.AddHeader("Pragma", "private"); Response.AddHeader("Cache-control", "private, must-revalidate"); Response.AddHeader("Content-Type", "application/octet-stream"); Response.AddHeader("Content-Length", objFile.Length.ToString()); Response.AddHeader("Content-Disposition", "attachment; filename=" + Path.GetFileName(this.strFile)); Response.WriteFile(this.objConfig.strUploadPath + "\\" + this.strFile); break; case "delfile": try { File.Delete(this.objConfig.strUploadPath + "\\" + this.strFile); if (File.Exists(this.objConfig.strThumbPath + "\\" + this.strFile)) { File.Delete(this.objConfig.strThumbPath + "\\" + this.strFile); } } catch { //TODO: set error } goto default; case "delfolder": try { Directory.Delete(this.objConfig.strUploadPath + "\\" + strFolder, true); Directory.Delete(this.objConfig.strThumbPath + "\\" + strFolder, true); } catch { //TODO: set error } goto default; default: //just a regular page load if (this.strCurrPath != "") { // add "up one" folder this.objFItem = new TinyFileManager.NET.clsFileItem(); this.objFItem.strName = ".."; this.objFItem.boolIsFolder = true; this.objFItem.boolIsFolderUp = true; this.objFItem.intColNum = this.getNextColNum(); this.objFItem.strPath = this.getUpOneDir(this.strCurrPath); this.objFItem.strClassType = "dir"; this.objFItem.strDeleteLink = "<a class=\"btn erase-button top-right disabled\" title=\"Erase\"><i class=\"icon-trash\"></i></a>"; this.objFItem.strThumbImage = "img/ico/folder_return.png"; this.objFItem.strLink = "<a title=\"Open\" href=\"" + this.strCurrLink + "&currpath=" + this.objFItem.strPath + "\"><img class=\"directory-img\" src=\"" + this.objFItem.strThumbImage + "\" alt=\"folder\" /><h3>..</h3></a>"; this.arrLinks.Add(objFItem); } if (this.strCurrPath.Contains(this.objConfig.strUploadPath)) this.strCurrPath = defaultRootPath; //load folders arrFolders = Directory.GetDirectories(this.objConfig.strUploadPath + this.strCurrPath); var renameLink = "<a href='javascript:void(0)' class='btn btn-rename'><i class='fa fa-text-width' aria-hidden='true'></i></a>"; foreach (string strF in arrFolders) { this.objFItem = new TinyFileManager.NET.clsFileItem(); this.objFItem.strName = Path.GetFileName(strF); this.objFItem.boolIsFolder = true; this.objFItem.intColNum = this.getNextColNum(); this.objFItem.strPath = this.strCurrPath + Path.GetFileName(strF); this.objFItem.strClassType = "dir"; if (this.objConfig.boolAllowDeleteFolder) { this.objFItem.strDeleteLink = "<a href=\"" + this.strCurrLink + "&cmd=delfolder&folder=" + this.objFItem.strPath + "&currpath=" + this.strCurrPath + "\" class=\"btn erase-button top-right\" onclick=\"return confirm('Are you sure you want to delete this folder? NOTE: All the subfolders and files under this folder will also be deleted and there is no way of getting them back.');\" title=\"Erase\"><i class=\"icon-trash\"></i></a>"; this.objFItem.strDeleteLink = this.objFItem.strDeleteLink + renameLink; } else { this.objFItem.strDeleteLink = "<a class=\"btn erase-button top-right disabled\" title=\"Erase\"><i class=\"icon-trash\"></i></a>"; } this.objFItem.strThumbImage = "img/ico/folder.png"; this.objFItem.strLink = "<a title=\"Open\" href=\"" + this.strCurrLink + "&currpath=" + this.objFItem.strPath + "\"><img class=\"directory-img\" src=\"" + this.objFItem.strThumbImage + "\" alt=\"folder\" /><h3>" + this.objFItem.strName + "</h3></a>"; this.arrLinks.Add(objFItem); } // load files arrFiles = Directory.GetFiles(this.objConfig.strUploadPath + this.strCurrPath); foreach (string strF in arrFiles) { this.objFItem = new TinyFileManager.NET.clsFileItem(); this.objFItem.strName = Path.GetFileNameWithoutExtension(strF); this.objFItem.boolIsFolder = false; this.objFItem.strPath = this.strCurrPath + Path.GetFileName(strF); this.objFItem.boolIsImage = this.isImageFile(Path.GetFileName(strF)); this.objFItem.boolIsVideo = this.isVideoFile(Path.GetFileName(strF)); this.objFItem.boolIsMusic = this.isMusicFile(Path.GetFileName(strF)); this.objFItem.boolIsMisc = this.isMiscFile(Path.GetFileName(strF)); // check to see if it's the type of file we are looking at if ((this.boolOnlyImage && this.objFItem.boolIsImage) || (this.boolOnlyVideo && this.objFItem.boolIsVideo) || (!this.boolOnlyImage && !this.boolOnlyVideo)) { this.objFItem.intColNum = this.getNextColNum(); // get display class type if (this.objFItem.boolIsImage) { this.objFItem.strClassType = "2"; } else { if (this.objFItem.boolIsMisc) { this.objFItem.strClassType = "3"; } else { if (this.objFItem.boolIsMusic) { this.objFItem.strClassType = "5"; } else { if (this.objFItem.boolIsVideo) { this.objFItem.strClassType = "4"; } else { this.objFItem.strClassType = "1"; } } } } // get delete link if (this.objConfig.boolAllowDeleteFile) { this.objFItem.strDeleteLink = "<a href=\"" + this.strCurrLink + "&cmd=delfile&file=" + this.objFItem.strPath + "&currpath=" + this.strCurrPath + "\" class=\"btn erase-button\" onclick=\"return confirm('Are you sure you want to delete this file? NOTE: There is no way to get this file back once you delete it');\" title=\"Erase\"><i class=\"icon-trash\"></i></a>"; } else { this.objFItem.strDeleteLink = "<a class=\"btn erase-button disabled\" title=\"Erase\"><i class=\"icon-trash\"></i></a>"; } // get thumbnail image if (this.objFItem.boolIsImage) { // first check to see if thumb exists if (!File.Exists(this.objConfig.strThumbPath + this.objFItem.strPath)) { // thumb doesn't exist, create it strTargetFile = this.objConfig.strUploadPath + this.objFItem.strPath; strThumbFile = this.objConfig.strThumbPath + this.objFItem.strPath; this.createThumbnail(strTargetFile, strThumbFile); } if (this.objFItem.strPath.StartsWith("\\")) this.objFItem.strPath = this.objFItem.strPath.Substring(1); this.objFItem.strThumbImage = (this.objConfig.strThumbURL + this.objFItem.strPath.Replace('\\', '/')); } else { if (File.Exists(Directory.GetParent(Request.PhysicalPath).FullName + "\\img\\ico\\" + Path.GetExtension(strF).TrimStart('.').ToUpper() + ".png")) { this.objFItem.strThumbImage = "img/ico/" + Path.GetExtension(strF).TrimStart('.').ToUpper() + ".png"; } else { this.objFItem.strThumbImage = "img/ico/Default.png"; } } this.objFItem.strDownFormOpen = "<form action=\"dialog.aspx?cmd=download&file=" + this.objFItem.strPath + "\" method=\"post\" class=\"download-form\">"; var path = strF.Replace(Server.MapPath("~/"), "").Replace("\\", "/").Replace("///", "/"); if (!path.StartsWith("/")) path = "/" + path; if (this.objFItem.boolIsImage) { this.objFItem.strPreviewLink = "<a class=\"btn preview\" title=\"Preview\" data-url=\"" + this.objConfig.strUploadURL + "/" + this.objFItem.strPath + "\" data-toggle=\"lightbox\" href=\"#previewLightbox\"><i class=\"icon-eye-open\"></i></a><a class='btn' href='"+ baseUrl + path + "' target='_blank'><i class='fa fa-external-link'></i></a>"; } else { this.objFItem.strPreviewLink = "<a class=\"btn preview disabled\" title=\"Preview\"><i class=\"icon-eye-open\"></i></a> <a class='btn' href='" + baseUrl + path + "' target='_blank'><i class='fa fa-external-link'></i></a>"; } this.objFItem.strPreviewLink = this.objFItem.strPreviewLink + renameLink + "<a class='btn' href='/Admin/Views/PageHandlers/FileEditor/Default.aspx?LoadFile=" + path + "' target='_blank'><i class='fa fa-pencil'></i></a>"; this.objFItem.strLink = "<a href=\"#\" title=\"Select\" onclick=\"" + this.strApply + "('" + baseUrl + path + "'," + this.strType + ")\";\"><img data-src=\"holder.js/140x100\" alt=\"140x100\" src=\"" + this.objFItem.strThumbImage + "?width=200" + "\" height=\"100\"><h4>" + this.objFItem.strName + new FileInfo(this.objFItem.strPath).Extension + "</h4></a>"; this.arrLinks.Add(objFItem); } } // foreach break; } // switch } // page load