Пример #1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            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"] + "";

            // load config
            objConfig = new clsConfig(strProfile);

            //check inputs
            if (strCurrPath.Length > 0)
            {
                strCurrPath = strCurrPath.TrimEnd('\\') + "\\";
            }

            //set the apply string, based on the passed type
            if (strType == "")
            {
                strType = "0";
            }
            switch (strType)
            {
            case "1":
                strApply          = "apply_img";
                boolOnlyImage     = true;
                strAllowedFileExt = objConfig.strAllowedImageExtensions;
                break;

            case "2":
                strApply          = "apply_link";
                strAllowedFileExt = objConfig.strAllowedAllExtensions;
                break;

            default:
                if (Convert.ToInt32(strType) >= 3)
                {
                    strApply          = "apply_video";
                    boolOnlyVideo     = true;
                    strAllowedFileExt = objConfig.strAllowedVideoExtensions;
                }
                else
                {
                    strApply          = "apply";
                    strAllowedFileExt = objConfig.strAllowedAllExtensions;
                }
                break;
            }

            //setup current link
            strCurrLink = "dialog.aspx?type=" + strType + "&editor=" + strEditor + "&lang=" + strLang + "&profile=" + strProfile;

            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: #E7F6F7;}");
                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: #E7F6F7;}");
                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\">" + 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\">" + 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\">" + 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\">" + 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\">" + 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\">" + 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\">" + 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\">" + 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\">" + 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\">" + 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\">" + 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\">" + 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\">" + 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\">" + 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\">" + 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\">" + 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\">" + 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\">" + 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\">" + 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(objConfig.strUploadPath + "\\" + strFolder.ToLower().Replace(" ", "-"));
                    Directory.CreateDirectory(objConfig.strThumbPath + "\\" + strFolder.ToLower().Replace(" ", "-"));

                    // 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 nameFile = Util.RemoveSignInVietnameseString(filUpload.FileName);
                    strTargetFile = objConfig.strUploadPath + strFolder + nameFile;
                    strThumbFile  = objConfig.strThumbPath + strFolder + nameFile;
                    if (File.Exists(strTargetFile))
                    {
                        var chars  = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
                        var random = new Random();
                        var bee    = new string(
                            Enumerable.Repeat(chars, 4)
                            .Select(s => s[random.Next(s.Length)])
                            .ToArray());
                        strTargetFile = objConfig.strUploadPath + strFolder + bee + nameFile;
                        strThumbFile  = objConfig.strThumbPath + strFolder + bee + nameFile;
                    }

                    filUpload.SaveAs(strTargetFile);
                    if (isImageFile(strTargetFile))
                    {
                        createThumbnail(strTargetFile, strThumbFile);
                    }
                }

                // end response
                if (Request.Form["fback"] == "true")
                {
                    Response.Redirect(strCurrLink);
                }
                else
                {
                    Response.End();
                }

                break;

            case "download":
                FileInfo objFile = new FileInfo(objConfig.strUploadPath + "\\" + 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(strFile));
                Response.WriteFile(objConfig.strUploadPath + "\\" + strFile);
                break;

            case "delfile":
                try
                {
                    File.Delete(objConfig.strUploadPath + "\\" + strFile);
                    if (File.Exists(objConfig.strThumbPath + "\\" + strFile))
                    {
                        File.Delete(objConfig.strThumbPath + "\\" + strFile);
                    }
                }
                catch
                {
                    //TODO: set error
                }
                goto default;

            case "delfolder":
                try
                {
                    Directory.Delete(objConfig.strUploadPath + "\\" + strFolder, true);
                    Directory.Delete(objConfig.strThumbPath + "\\" + strFolder, true);
                }
                catch
                {
                    //TODO: set error
                }
                goto default;

            default:        //just a regular page load
                if (strCurrPath != "")
                {
                    // add "up one" folder
                    objFItem                = new clsFileItem();
                    objFItem.strName        = "..";
                    objFItem.boolIsFolder   = true;
                    objFItem.boolIsFolderUp = true;
                    objFItem.intColNum      = getNextColNum();
                    objFItem.strPath        = getUpOneDir(strCurrPath);
                    objFItem.strClassType   = "dir";
                    objFItem.strDeleteLink  = "<a class=\"btn erase-button top-right disabled\" title=\"Erase\"><i class=\"icon-trash\"></i></a>";
                    objFItem.strThumbImage  = "img/ico/folder_return.png";
                    objFItem.strLink        = "<a title=\"Open\" href=\"" + strCurrLink + "&currpath=" + objFItem.strPath + "\"><img class=\"directory-img\" src=\"" + objFItem.strThumbImage + "\" alt=\"folder\" /><h3>..</h3></a>";
                    arrLinks.Add(objFItem);
                }

                //load folders
                arrFolders = Directory.GetDirectories(objConfig.strUploadPath + strCurrPath);
                foreach (string strF in arrFolders)
                {
                    objFItem              = new clsFileItem();
                    objFItem.strName      = Path.GetFileName(strF);
                    objFItem.boolIsFolder = true;
                    objFItem.intColNum    = getNextColNum();
                    objFItem.strPath      = strCurrPath + Path.GetFileName(strF);
                    objFItem.strClassType = "dir";
                    if (objConfig.boolAllowDeleteFolder)
                    {
                        objFItem.strDeleteLink = "<a href=\"" + strCurrLink + "&cmd=delfolder&folder=" + objFItem.strPath + "&currpath=" + strCurrPath + "\" class=\"btn erase-button top-right\" onclick=\"return confirm('Are you sure to delete the folder and all the objects in it?');\" title=\"Erase\"><i class=\"icon-trash\"></i></a>";
                    }
                    else
                    {
                        objFItem.strDeleteLink = "<a class=\"btn erase-button top-right disabled\" title=\"Erase\"><i class=\"icon-trash\"></i></a>";
                    }
                    objFItem.strThumbImage = "img/ico/folder.png";
                    objFItem.strLink       = "<a title=\"Open\" href=\"" + strCurrLink + "&currpath=" + objFItem.strPath + "\"><img class=\"directory-img\" src=\"" + objFItem.strThumbImage + "\" alt=\"folder\" /><h3>" + objFItem.strName + "</h3></a>";
                    arrLinks.Add(objFItem);
                }

                // load files
                arrFiles = Directory.GetFiles(objConfig.strUploadPath + strCurrPath);
                foreach (string strF in arrFiles)
                {
                    objFItem              = new clsFileItem();
                    objFItem.strName      = Path.GetFileNameWithoutExtension(strF);
                    objFItem.boolIsFolder = false;
                    objFItem.strPath      = strCurrPath + Path.GetFileName(strF);
                    objFItem.boolIsImage  = isImageFile(Path.GetFileName(strF));
                    objFItem.boolIsVideo  = isVideoFile(Path.GetFileName(strF));
                    objFItem.boolIsMusic  = isMusicFile(Path.GetFileName(strF));
                    objFItem.boolIsMisc   = isMiscFile(Path.GetFileName(strF));

                    // check to see if it's the type of file we are looking at
                    if ((boolOnlyImage && objFItem.boolIsImage) || (boolOnlyVideo && objFItem.boolIsVideo) || (!boolOnlyImage && !boolOnlyVideo))
                    {
                        objFItem.intColNum = getNextColNum();
                        // get display class type
                        if (objFItem.boolIsImage)
                        {
                            objFItem.strClassType = "2";
                        }
                        else
                        {
                            if (objFItem.boolIsMisc)
                            {
                                objFItem.strClassType = "3";
                            }
                            else
                            {
                                if (objFItem.boolIsMusic)
                                {
                                    objFItem.strClassType = "5";
                                }
                                else
                                {
                                    if (objFItem.boolIsVideo)
                                    {
                                        objFItem.strClassType = "4";
                                    }
                                    else
                                    {
                                        objFItem.strClassType = "1";
                                    }
                                }
                            }
                        }
                        // get delete link
                        if (objConfig.boolAllowDeleteFile)
                        {
                            objFItem.strDeleteLink = "<a href=\"" + strCurrLink + "&cmd=delfile&file=" + objFItem.strPath + "&currpath=" + strCurrPath + "\" class=\"btn erase-button\" onclick=\"return confirm('Are you sure to delete this file?');\" title=\"Erase\"><i class=\"icon-trash\"></i></a>";
                        }
                        else
                        {
                            objFItem.strDeleteLink = "<a class=\"btn erase-button disabled\" title=\"Erase\"><i class=\"icon-trash\"></i></a>";
                        }
                        // get thumbnail image
                        if (objFItem.boolIsImage)
                        {
                            // first check to see if thumb exists
                            if (!File.Exists(objConfig.strThumbPath + objFItem.strPath))
                            {
                                // thumb doesn't exist, create it
                                strTargetFile = objConfig.strUploadPath + objFItem.strPath;
                                strThumbFile  = objConfig.strThumbPath + objFItem.strPath;
                                createThumbnail(strTargetFile, strThumbFile);
                            }
                            objFItem.strThumbImage = objConfig.strThumbURL + "/" + objFItem.strPath.Replace('\\', '/');
                        }
                        else
                        {
                            if (File.Exists(Directory.GetParent(Request.PhysicalPath).FullName + "\\img\\ico\\" + Path.GetExtension(strF).TrimStart('.').ToUpper() + ".png"))
                            {
                                objFItem.strThumbImage = "img/ico/" + Path.GetExtension(strF).TrimStart('.').ToUpper() + ".png";
                            }
                            else
                            {
                                objFItem.strThumbImage = "img/ico/Default.png";
                            }
                        }
                        objFItem.strDownFormOpen = "<form action=\"dialog.aspx?cmd=download&file=" + objFItem.strPath + "\" method=\"post\" class=\"download-form\">";
                        if (objFItem.boolIsImage)
                        {
                            objFItem.strPreviewLink = "<a class=\"btn preview\" title=\"Preview\" data-url=\"" + objConfig.strUploadURL + "/" + objFItem.strPath.Replace('\\', '/') + "\" data-toggle=\"lightbox\" href=\"#previewLightbox\"><i class=\"icon-eye-open\"></i></a>";
                        }
                        else
                        {
                            objFItem.strPreviewLink = "<a class=\"btn preview disabled\" title=\"Preview\"><i class=\"icon-eye-open\"></i></a>";
                        }
                        objFItem.strLink = "<a class=\"abcx\" href=\"#\" title=\"Select\" onclick=\"" + strApply + "('" + objConfig.strUploadURL + "/" + objFItem.strPath.Replace('\\', '/') + "'," + strType + ")\";\"><img data-src=\"holder.js/140x100\" alt=\"140x100\" src=\"" + objFItem.strThumbImage + "\" height=\"100\"><h4>" + objFItem.strName + "</h4></a>";

                        arrLinks.Add(objFItem);
                    }
                }     // foreach

                break;
            } // switch
        }     // page load
Пример #2
0
    protected void Page_Load(object sender, EventArgs e)
    {
        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"] + "";

        //check inputs
        if (this.strCurrPath.Length > 0)
        {
            this.strCurrPath = this.strCurrPath.TrimEnd('\\') + "\\";
        }

        //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;
            break;

        case "2":
            this.strApply = "apply_link";
            break;

        default:
            if (Convert.ToInt32(this.strType) >= 3)
            {
                this.strApply      = "apply_video";
                this.boolOnlyVideo = true;
            }
            else
            {
                this.strApply = "apply";
            }
            break;
        }

        //setup current link
        strCurrLink = "dialog.aspx?type=" + this.strType + "&editor=" + this.strEditor + "&lang=" + this.strLang;

        switch (strCmd)
        {
        case "debugsettings":
            Response.Write("<b>AllowCreateFolder:</b> " + clsConfig.boolAllowCreateFolder + "<br>");
            Response.Write("<b>AllowDeleteFile:</b> " + clsConfig.boolAllowDeleteFile + "<br>");
            Response.Write("<b>AllowDeleteFolder:</b> " + clsConfig.boolAllowDeleteFolder + "<br>");
            Response.Write("<b>AllowUploadFile:</b> " + clsConfig.boolAllowUploadFile + "<br>");
            Response.Write("<b>MaxUploadSizeMb:</b> " + clsConfig.intMaxUploadSizeMb + "<br>");
            Response.Write("<b>AllowedAllExtensions:</b> " + clsConfig.strAllowedAllExtensions + "<br>");
            Response.Write("<b>AllowedFileExtensions:</b> " + clsConfig.strAllowedFileExtensions + "<br>");
            Response.Write("<b>AllowedImageExtensions:</b> " + clsConfig.strAllowedImageExtensions + "<br>");
            Response.Write("<b>AllowedMiscExtensions:</b> " + clsConfig.strAllowedMiscExtensions + "<br>");
            Response.Write("<b>AllowedMusicExtensions:</b> " + clsConfig.strAllowedMusicExtensions + "<br>");
            Response.Write("<b>AllowedVideoExtensions:</b> " + clsConfig.strAllowedVideoExtensions + "<br>");
            Response.Write("<b>BaseURL:</b> " + clsConfig.strBaseURL + "<br>");
            Response.Write("<b>DocRoot:</b> " + clsConfig.strDocRoot + "<br>");
            Response.Write("<b>ThumbPath:</b> " + clsConfig.strThumbPath + "<br>");
            Response.Write("<b>ThumbURL:</b> " + clsConfig.strThumbURL + "<br>");
            Response.Write("<b>UploadPath:</b> " + clsConfig.strUploadPath + "<br>");
            Response.Write("<b>UploadURL:</b> " + clsConfig.strUploadURL + "<br>");
            Response.End();
            break;

        case "createfolder":
            try
            {
                strFolder = Request.Form["folder"] + "";
                //forge ahead without checking for existence
                //catch will save us
                Directory.CreateDirectory(clsConfig.strUploadPath + "\\" + strFolder);
                Directory.CreateDirectory(clsConfig.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))
            {
                strTargetFile = clsConfig.strUploadPath + this.strFolder + filUpload.FileName;
                strThumbFile  = clsConfig.strThumbPath + this.strFolder + filUpload.FileName;
                filUpload.SaveAs(strTargetFile);

                if (this.isImageFile(strTargetFile))
                {
                    this.createThumbnail(strTargetFile, strThumbFile);
                }
            }

            // end response
            Response.End();
            break;

        case "download":
            FileInfo objFile = new FileInfo(clsConfig.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(clsConfig.strUploadPath + "\\" + this.strFile);
            break;

        case "delfile":
            try
            {
                File.Delete(clsConfig.strUploadPath + "\\" + this.strFile);
                if (File.Exists(clsConfig.strThumbPath + "\\" + this.strFile))
                {
                    File.Delete(clsConfig.strThumbPath + "\\" + this.strFile);
                }
            }
            catch
            {
                //TODO: set error
            }
            goto default;

        case "delfolder":
            try
            {
                Directory.Delete(clsConfig.strUploadPath + "\\" + strFolder, true);
                Directory.Delete(clsConfig.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 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);
            }

            //load folders
            arrFolders = Directory.GetDirectories(clsConfig.strUploadPath + this.strCurrPath);
            foreach (string strF in arrFolders)
            {
                this.objFItem              = new 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 (clsConfig.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 to delete the folder and all the objects in it?');\" title=\"Erase\"><i class=\"icon-trash\"></i></a>";
                }
                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(clsConfig.strUploadPath + this.strCurrPath);
            foreach (string strF in arrFiles)
            {
                this.objFItem              = new clsFileItem();
                this.objFItem.strName      = Path.GetFileNameWithoutExtension(strF);
                this.objFItem.boolIsFolder = false;
                this.objFItem.intColNum    = this.getNextColNum();
                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));
                // 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 (clsConfig.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 to delete this file?');\" 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)
                {
                    this.objFItem.strThumbImage = clsConfig.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\">";
                if (this.objFItem.boolIsImage)
                {
                    this.objFItem.strPreviewLink = "<a class=\"btn preview\" title=\"Preview\" data-url=\"" + clsConfig.strUploadURL + "/" + this.objFItem.strPath.Replace('\\', '/') + "\" data-toggle=\"lightbox\" href=\"#previewLightbox\"><i class=\"icon-eye-open\"></i></a>";
                }
                else
                {
                    this.objFItem.strPreviewLink = "<a class=\"btn preview disabled\" title=\"Preview\"><i class=\"icon-eye-open\"></i></a>";
                }
                this.objFItem.strLink = "<a href=\"#\" title=\"Select\" onclick=\"" + this.strApply + "('" + clsConfig.strUploadURL + "/" + this.objFItem.strPath.Replace('\\', '/') + "'," + this.strType + ")\";\"><img data-src=\"holder.js/140x100\" alt=\"140x100\" src=\"" + this.objFItem.strThumbImage + "\" height=\"100\"><h4>" + this.objFItem.strName + "</h4></a>";

                // 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.arrLinks.Add(objFItem);
                }
            }     // foreach

            break;
        } // switch
    }     // page load