コード例 #1
0
ファイル: ModalTaxis.cs プロジェクト: zhongqi013/cms
        public override void Submit_OnClick(object sender, EventArgs e)
        {
            if (HifMyFile.PostedFile == null || HifMyFile.PostedFile.FileName == "")
            {
                return;
            }

            var filePath = HifMyFile.PostedFile.FileName;

            if (EFileSystemTypeUtils.GetEnumType(Path.GetExtension(filePath)) != EFileSystemType.Zip)
            {
                FailMessage("必须上传ZIP文件");
                return;
            }

            try
            {
                //var localFilePath = PathUtils.GetTemporaryFilesPath(Path.GetFileName(filePath));

                //HifMyFile.PostedFile.SaveAs(localFilePath);

                //var importObject = new ImportObject(SiteId);
                //importObject.ImportRelatedFieldByZipFile(localFilePath, TranslateUtils.ToBool(DdlIsOverride.SelectedValue));

                //Body.AddSiteLog(SiteId, "导入联动字段");

                LayerUtils.Close(Page);
            }
            catch (Exception ex)
            {
                FailMessage(ex, "导入联动字段失败!");
            }
        }
コード例 #2
0
        public override void Submit_OnClick(object sender, EventArgs e)
        {
            if (myFile.PostedFile != null && "" != myFile.PostedFile.FileName)
            {
                var filePath = myFile.PostedFile.FileName;
                if (!EFileSystemTypeUtils.IsZip(PathUtils.GetExtension(filePath)))
                {
                    FailMessage("必须上传Zip压缩文件");
                    return;
                }

                try
                {
                    var localFilePath = PathUtils.GetTemporaryFilesPath(PathUtils.GetFileName(filePath));

                    myFile.PostedFile.SaveAs(localFilePath);

                    ImportObject.ImportTableStyleByZipFile(_tableStyle, _tableName, _relatedIdentity, localFilePath);

                    Body.AddSiteLog(PublishmentSystemId, "导入表单显示样式", $"类型:{ETableStyleUtils.GetText(_tableStyle)}");

                    PageUtils.CloseModalPage(Page);
                }
                catch (Exception ex)
                {
                    FailMessage(ex, "导入表样式失败!");
                }
            }
        }
コード例 #3
0
        public override void Submit_OnClick(object sender, EventArgs e)
        {
            if (HifMyFile.PostedFile != null && "" != HifMyFile.PostedFile.FileName)
            {
                var filePath = HifMyFile.PostedFile.FileName;
                if (!EFileSystemTypeUtils.IsZip(PathUtils.GetExtension(filePath)))
                {
                    FailMessage("必须上传Zip压缩文件");
                    return;
                }

                try
                {
                    var localFilePath = PathUtils.GetTemporaryFilesPath(PathUtils.GetFileName(filePath));

                    HifMyFile.PostedFile.SaveAs(localFilePath);

                    ImportObject.ImportTableStyleByZipFile(_tableName, _relatedIdentity, localFilePath);

                    AuthRequest.AddSiteLog(SiteId, "导入表单显示样式");

                    LayerUtils.Close(Page);
                }
                catch (Exception ex)
                {
                    FailMessage(ex, "导入表样式失败!");
                }
            }
        }
コード例 #4
0
ファイル: ModalChannelImport.cs プロジェクト: skotbenben/cms
        public override void Submit_OnClick(object sender, EventArgs e)
        {
            if (myFile.PostedFile != null && "" != myFile.PostedFile.FileName)
            {
                var filePath = myFile.PostedFile.FileName;
                if (!EFileSystemTypeUtils.IsZip(PathUtils.GetExtension(filePath)))
                {
                    FailMessage("必须上传Zip压缩文件");
                    return;
                }

                try
                {
                    var localFilePath = PathUtils.GetTemporaryFilesPath(PathUtils.GetFileName(filePath));

                    myFile.PostedFile.SaveAs(localFilePath);

                    var importObject = new ImportObject(PublishmentSystemId);
                    importObject.ImportChannelsAndContentsByZipFile(TranslateUtils.ToInt(ParentNodeID.SelectedValue), localFilePath, TranslateUtils.ToBool(IsOverride.SelectedValue));

                    Body.AddSiteLog(PublishmentSystemId, "导入栏目");

                    PageUtils.CloseModalPage(Page);
                }
                catch (Exception ex)
                {
                    FailMessage(ex, "导入栏目失败!");
                }
            }
        }
コード例 #5
0
        public string GetPreviewImageSrc(string adType)
        {
            var type     = EAdvertisementTypeUtils.GetEnumType(adType);
            var imageUrl = ImageUrl.Text;

            if (type == EAdvertisementType.ScreenDown)
            {
                imageUrl = ScreenDownImageUrl.Text;
            }
            if (!string.IsNullOrEmpty(imageUrl))
            {
                var extension = PathUtils.GetExtension(imageUrl);
                if (EFileSystemTypeUtils.IsImage(extension))
                {
                    return(PageUtility.ParseNavigationUrl(PublishmentSystemInfo, imageUrl));
                }
                else if (EFileSystemTypeUtils.IsFlash(extension))
                {
                    return(SiteServerAssets.GetIconUrl("flash.jpg"));
                }
                else if (EFileSystemTypeUtils.IsPlayer(extension))
                {
                    return(SiteServerAssets.GetIconUrl("player.gif"));
                }
            }
            return(SiteServerAssets.GetIconUrl("empty.gif"));
        }
コード例 #6
0
ファイル: ModalImport.cs プロジェクト: ym1100/siteserver-cms
        public override void Submit_OnClick(object sender, EventArgs e)
        {
            if (StringUtils.EqualsIgnoreCase(_type, TypeRelatedField))
            {
                if (HifMyFile.PostedFile != null && "" != HifMyFile.PostedFile.FileName)
                {
                    var filePath = HifMyFile.PostedFile.FileName;
                    if (EFileSystemTypeUtils.GetEnumType(Path.GetExtension(filePath)) != EFileSystemType.Zip)
                    {
                        FailMessage("必须上传ZIP文件");
                        return;
                    }

                    try
                    {
                        var localFilePath = PathUtils.GetTemporaryFilesPath(Path.GetFileName(filePath));

                        HifMyFile.PostedFile.SaveAs(localFilePath);

                        var importObject = new ImportObject(SiteId, AuthRequest.AdminName);
                        importObject.ImportRelatedFieldByZipFile(localFilePath, TranslateUtils.ToBool(DdlIsOverride.SelectedValue));

                        AuthRequest.AddSiteLog(SiteId, "导入联动字段");

                        LayerUtils.Close(Page);
                    }
                    catch (Exception ex)
                    {
                        FailMessage(ex, "导入联动字段失败!");
                    }
                }
            }
        }
コード例 #7
0
        public override void Submit_OnClick(object sender, EventArgs e)
        {
            if (HifFile.PostedFile != null && "" != HifFile.PostedFile.FileName)
            {
                var filePath = HifFile.PostedFile.FileName;
                if (!EFileSystemTypeUtils.IsZip(PathUtils.GetExtension(filePath)))
                {
                    FailMessage("必须上传Zip压缩文件");
                    return;
                }

                try
                {
                    var localFilePath = PathUtils.GetTemporaryFilesPath(PathUtils.GetFileName(filePath));

                    HifFile.PostedFile.SaveAs(localFilePath);

                    var importObject = new ImportObject(SiteId, AuthRequest.AdminName);
                    importObject.ImportChannelsAndContentsByZipFile(TranslateUtils.ToInt(DdlParentChannelId.SelectedValue), localFilePath, TranslateUtils.ToBool(DdlIsOverride.SelectedValue));

                    AuthRequest.AddSiteLog(SiteId, "导入栏目");

                    LayerUtils.Close(Page);
                }
                catch (Exception ex)
                {
                    FailMessage(ex, "导入栏目失败!");
                }
            }
        }
コード例 #8
0
 public static void AddWaterMark(SiteInfo siteInfo, string imagePath)
 {
     try
     {
         var fileExtName = PathUtils.GetExtension(imagePath);
         if (EFileSystemTypeUtils.IsImage(fileExtName))
         {
             if (siteInfo.Additional.IsWaterMark)
             {
                 if (siteInfo.Additional.IsImageWaterMark)
                 {
                     if (!string.IsNullOrEmpty(siteInfo.Additional.WaterMarkImagePath))
                     {
                         ImageUtils.AddImageWaterMark(imagePath, PathUtility.MapPath(siteInfo, siteInfo.Additional.WaterMarkImagePath), siteInfo.Additional.WaterMarkPosition, siteInfo.Additional.WaterMarkTransparency, siteInfo.Additional.WaterMarkMinWidth, siteInfo.Additional.WaterMarkMinHeight);
                     }
                 }
                 else
                 {
                     if (!string.IsNullOrEmpty(siteInfo.Additional.WaterMarkFormatString))
                     {
                         var now = DateTime.Now;
                         ImageUtils.AddTextWaterMark(imagePath, string.Format(siteInfo.Additional.WaterMarkFormatString, DateUtils.GetDateString(now), DateUtils.GetTimeString(now)), siteInfo.Additional.WaterMarkFontName, siteInfo.Additional.WaterMarkFontSize, siteInfo.Additional.WaterMarkPosition, siteInfo.Additional.WaterMarkTransparency, siteInfo.Additional.WaterMarkMinWidth, siteInfo.Additional.WaterMarkMinHeight);
                     }
                 }
             }
         }
     }
     catch
     {
         // ignored
     }
 }
コード例 #9
0
 public void BindGrid()
 {
     try
     {
         DirectoryUtils.CreateDirectoryIfNotExists(_directoryPath);
         var fileNames         = DirectoryUtils.GetFileNames(_directoryPath);
         var fileNameArrayList = new ArrayList();
         foreach (var fileName in fileNames)
         {
             if (EFileSystemTypeUtils.IsTextEditable(EFileSystemTypeUtils.GetEnumType(PathUtils.GetExtension(fileName))))
             {
                 if (!fileName.Contains("_parsed"))
                 {
                     fileNameArrayList.Add(fileName);
                 }
             }
         }
         dgContents.DataSource = fileNameArrayList;
         dgContents.DataBind();
     }
     catch (Exception ex)
     {
         PageUtils.RedirectToErrorPage(ex.Message);
     }
 }
コード例 #10
0
        public IHttpActionResult UploadAvatar(int id)
        {
            try
            {
                var oRequest = new ORequest(AccessTokenManager.ScopeUsers);
                if (!oRequest.IsApiAuthorized)
                {
                    return(Unauthorized());
                }

                if (!DataProvider.UserDao.ApiIsExists(id))
                {
                    return(NotFound());
                }

                var userInfo = DataProvider.UserDao.ApiGetUser(id);

                foreach (string name in HttpContext.Current.Request.Files)
                {
                    var postFile = HttpContext.Current.Request.Files[name];

                    if (postFile == null)
                    {
                        return(BadRequest("Could not read image from body"));
                    }

                    var directoryPath = PathUtils.GetUserUploadDirectoryPath(userInfo.UserName);
                    var fileName      = PathUtils.GetUserUploadFileName(postFile.FileName);
                    if (!EFileSystemTypeUtils.IsImage(PathUtils.GetExtension(fileName)))
                    {
                        return(BadRequest("image file extension is not correct"));
                    }

                    postFile.SaveAs(PathUtils.Combine(directoryPath, fileName));

                    userInfo.AvatarUrl = PageUtils.AddProtocolToUrl(PageUtils.GetUserFilesUrl(userInfo.UserName, fileName));

                    string errorMessage;
                    var    user = DataProvider.UserDao.ApiUpdate(id, new UserInfoCreateUpdate
                    {
                        AvatarUrl = userInfo.AvatarUrl
                    }, out errorMessage);

                    if (user == null)
                    {
                        return(BadRequest(errorMessage));
                    }
                }

                var oResponse = new OResponse(userInfo);

                return(Ok(oResponse));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }
コード例 #11
0
        public IHttpActionResult UploadAvatar(int id)
        {
            try
            {
                var request = new AuthenticatedRequest();
                var isAuth  = request.IsApiAuthenticated &&
                              AccessTokenManager.IsScope(request.ApiToken, AccessTokenManager.ScopeUsers) ||
                              request.IsUserLoggin &&
                              request.UserId == id ||
                              request.IsAdminLoggin &&
                              request.AdminPermissions.HasSystemPermissions(ConfigManager.SettingsPermissions.User);
                if (!isAuth)
                {
                    return(Unauthorized());
                }

                var userInfo = UserManager.GetUserInfoByUserId(id);
                if (userInfo == null)
                {
                    return(NotFound());
                }

                foreach (string name in HttpContext.Current.Request.Files)
                {
                    var postFile = HttpContext.Current.Request.Files[name];

                    if (postFile == null)
                    {
                        return(BadRequest("Could not read image from body"));
                    }

                    var fileName = UserManager.GetUserUploadFileName(postFile.FileName);
                    var filePath = UserManager.GetUserUploadPath(userInfo.Id, fileName);

                    if (!EFileSystemTypeUtils.IsImage(PathUtils.GetExtension(fileName)))
                    {
                        return(BadRequest("image file extension is not correct"));
                    }

                    DirectoryUtils.CreateDirectoryIfNotExists(filePath);
                    postFile.SaveAs(filePath);

                    userInfo.AvatarUrl = UserManager.GetUserUploadUrl(userInfo.Id, fileName);

                    DataProvider.UserDao.Update(userInfo);
                }

                return(Ok(new
                {
                    Value = userInfo
                }));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }
コード例 #12
0
ファイル: AjaxUploadService.cs プロジェクト: yankaics/cms-1
        public bool UploadContentPhotoImage(out string message, out string url, out string smallUrl, out string middleUrl, out string largeUrl)
        {
            message = url = smallUrl = middleUrl = largeUrl = string.Empty;

            if (Request.Files["ImageUrl"] == null)
            {
                return(false);
            }

            var postedFile = Request.Files["ImageUrl"];

            try
            {
                var fileName       = PathUtility.GetUploadFileName(PublishmentSystemInfo, postedFile.FileName);
                var fileExtName    = PathUtils.GetExtension(fileName).ToLower();
                var directoryPath  = PathUtility.GetUploadDirectoryPath(PublishmentSystemInfo, fileExtName);
                var fileNameSmall  = "small_" + fileName;
                var fileNameMiddle = "middle_" + fileName;
                var filePath       = PathUtils.Combine(directoryPath, fileName);
                var filePathSamll  = PathUtils.Combine(directoryPath, fileNameSmall);
                var filePathMiddle = PathUtils.Combine(directoryPath, fileNameMiddle);

                if (EFileSystemTypeUtils.IsImageOrFlashOrPlayer(fileExtName))
                {
                    if (!PathUtility.IsImageSizeAllowed(PublishmentSystemInfo, postedFile.ContentLength))
                    {
                        message = "上传失败,上传图片超出规定文件大小!";
                        return(false);
                    }

                    postedFile.SaveAs(filePath);

                    FileUtility.AddWaterMark(PublishmentSystemInfo, filePath);

                    var widthSmall  = PublishmentSystemInfo.Additional.PhotoSmallWidth;
                    var heightSamll = PublishmentSystemInfo.Additional.PhotoSmallHeight;
                    ImageUtils.MakeThumbnail(filePath, filePathSamll, widthSmall, heightSamll, true);

                    var widthMiddle  = PublishmentSystemInfo.Additional.PhotoMiddleWidth;
                    var heightMiddle = PublishmentSystemInfo.Additional.PhotoMiddleHeight;
                    ImageUtils.MakeThumbnail(filePath, filePathMiddle, widthMiddle, heightMiddle, true);

                    url = PageUtility.GetPublishmentSystemUrlByPhysicalPath(PublishmentSystemInfo, filePathSamll);

                    smallUrl  = PageUtility.GetVirtualUrl(PublishmentSystemInfo, url);
                    middleUrl = PageUtility.GetVirtualUrl(PublishmentSystemInfo, PageUtility.GetPublishmentSystemUrlByPhysicalPath(PublishmentSystemInfo, filePathMiddle));
                    largeUrl  = PageUtility.GetVirtualUrl(PublishmentSystemInfo, PageUtility.GetPublishmentSystemUrlByPhysicalPath(PublishmentSystemInfo, filePath));
                    return(true);
                }
                message = "您必须上传图片文件!";
            }
            catch (Exception ex)
            {
                message = ex.Message;
            }
            return(false);
        }
コード例 #13
0
        public IHttpActionResult Upload()
        {
            try
            {
                var request = new AuthenticatedRequest();
                var userId  = request.GetQueryInt("userId");
                if (!request.IsAdminLoggin)
                {
                    return(Unauthorized());
                }
                var adminInfo = AdminManager.GetAdminInfoByUserId(userId);
                if (adminInfo == null)
                {
                    return(NotFound());
                }
                if (request.AdminId != userId &&
                    !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.SettingsPermissions.Admin))
                {
                    return(Unauthorized());
                }

                var avatarUrl = string.Empty;

                foreach (string name in HttpContext.Current.Request.Files)
                {
                    var postFile = HttpContext.Current.Request.Files[name];

                    if (postFile == null)
                    {
                        return(BadRequest("Could not read image from body"));
                    }

                    var fileName = AdminManager.GetUserUploadFileName(postFile.FileName);
                    var filePath = AdminManager.GetUserUploadPath(userId, fileName);

                    if (!EFileSystemTypeUtils.IsImage(PathUtils.GetExtension(fileName)))
                    {
                        return(BadRequest("image file extension is not correct"));
                    }

                    postFile.SaveAs(filePath);

                    avatarUrl = AdminManager.GetUserUploadUrl(userId, fileName);
                }

                return(Ok(new
                {
                    Value = avatarUrl
                }));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }
コード例 #14
0
        public override void Submit_OnClick(object sender, EventArgs e)
        {
            if (hifUpload.PostedFile != null && "" != hifUpload.PostedFile.FileName)
            {
                var filePath = hifUpload.PostedFile.FileName;
                try
                {
                    var fileExtName        = PathUtils.GetExtension(filePath).ToLower();
                    var localDirectoryPath = AppDomain.CurrentDomain.BaseDirectory.ToString() + "\\upload\\images";
                    //Server.MapPath(".");
                    DirectoryUtils.CreateDirectoryIfNotExists(localDirectoryPath);

                    var localFileName = GetUploadFileName(filePath, DateTime.Now, true);
                    var localFilePath = PathUtils.Combine(localDirectoryPath, localFileName);

                    if (!PathUtils.IsFileExtenstionAllowed("jpg|gif|png|bmp", fileExtName))
                    {
                        FailMessage("上传失败,上传图片格式不正确!");
                        return;
                    }
                    if (hifUpload.PostedFile.ContentLength > 10 * 1024)
                    {
                        FailMessage("上传失败,上传图片超出规定文件大小!");
                        return;
                    }

                    hifUpload.PostedFile.SaveAs(localFilePath);

                    var isImage = EFileSystemTypeUtils.IsImage(fileExtName);


                    if (string.IsNullOrEmpty(_textBoxClientId))
                    {
                        PageUtils.CloseModalPage(Page);
                    }
                    else
                    {
                        var textBoxUrl = "@/upload/images/" + localFileName;

                        ltlScript.Text += $@"
if (parent.document.getElementById('{_textBoxClientId}') != null)
{{
    parent.document.getElementById('{_textBoxClientId}').value = '{textBoxUrl}';
}}
";

                        ltlScript.Text += PageUtils.HidePopWin;
                    }
                }
                catch (Exception ex)
                {
                    FailMessage(ex, "图片上传失败!");
                }
            }
        }
コード例 #15
0
ファイル: PageTemplateCss.cs プロジェクト: zr53722/cms
        public void Page_Load(object sender, EventArgs e)
        {
            if (IsForbidden)
            {
                return;
            }

            PageUtils.CheckRequestParameter("siteId");

            _directoryPath = PathUtility.MapPath(SiteInfo, "@/css");

            if (AuthRequest.IsQueryExists("Delete"))
            {
                var fileName = AuthRequest.GetQueryString("FileName");

                try
                {
                    FileUtils.DeleteFileIfExists(PathUtils.Combine(_directoryPath, fileName));
                    AuthRequest.AddSiteLog(SiteId, "删除样式文件", $"样式文件:{fileName}");
                    SuccessDeleteMessage();
                }
                catch (Exception ex)
                {
                    FailDeleteMessage(ex);
                }
            }

            if (IsPostBack)
            {
                return;
            }

            VerifySitePermissions(ConfigManager.WebSitePermissions.Template);

            DirectoryUtils.CreateDirectoryIfNotExists(_directoryPath);
            var fileNames    = DirectoryUtils.GetFileNames(_directoryPath);
            var fileNameList = new List <string>();

            foreach (var fileName in fileNames)
            {
                if (EFileSystemTypeUtils.IsTextEditable(EFileSystemTypeUtils.GetEnumType(PathUtils.GetExtension(fileName))))
                {
                    if (!fileName.Contains("_parsed"))
                    {
                        fileNameList.Add(fileName);
                    }
                }
            }

            RptContents.DataSource     = fileNameList;
            RptContents.ItemDataBound += RptContents_ItemDataBound;
            RptContents.DataBind();

            BtnAdd.Attributes.Add("onclick", $"location.href='{PageTemplateCssAdd.GetRedirectUrl(SiteId)}';return false");
        }
コード例 #16
0
ファイル: PageTemplateIncludeAdd.cs プロジェクト: zr53722/cms
        public void Page_Load(object sender, EventArgs e)
        {
            if (IsForbidden)
            {
                return;
            }

            PageUtils.CheckRequestParameter("siteId");

            if (AuthRequest.IsQueryExists("FileName"))
            {
                _fileName = AuthRequest.GetQueryString("FileName");
                _fileName = PathUtils.RemoveParentPath(_fileName);
            }
            _directoryPath = PathUtility.MapPath(SiteInfo, "@/include");

            if (IsPostBack)
            {
                return;
            }

            VerifySitePermissions(ConfigManager.WebSitePermissions.Template);

            LtlPageTitle.Text = string.IsNullOrEmpty(_fileName) ? "添加包含文件" : "编辑包含文件";

            var isCodeMirror = SiteInfo.Additional.ConfigTemplateIsCodeMirror;

            BtnEditorType.Text   = isCodeMirror ? "采用纯文本编辑模式" : "采用代码编辑模式";
            PhCodeMirror.Visible = isCodeMirror;

            ECharsetUtils.AddListItems(DdlCharset);

            if (_fileName != null)
            {
                if (!EFileSystemTypeUtils.IsHtml(PathUtils.GetExtension(_fileName)))
                {
                    PageUtils.RedirectToErrorPage("对不起,此文件无法编辑!");
                }
                else
                {
                    TbRelatedFileName.Text     = PathUtils.RemoveExtension(_fileName);
                    LtlCreatedFileExtName.Text = PathUtils.GetExtension(_fileName);
                    var fileCharset = FileUtils.GetFileCharset(PathUtils.Combine(_directoryPath, _fileName));
                    ControlUtils.SelectSingleItemIgnoreCase(DdlCharset, ECharsetUtils.GetValue(fileCharset));
                    TbContent.Text = FileUtils.ReadText(PathUtils.Combine(_directoryPath, _fileName), fileCharset);
                }
            }
            else
            {
                LtlCreatedFileExtName.Text = ".html";
                ControlUtils.SelectSingleItemIgnoreCase(DdlCharset, SiteInfo.Additional.Charset);
            }
        }
コード例 #17
0
ファイル: SiteTemplateManager.cs プロジェクト: zerojuls/cms-3
        public List <string> GetZipSiteTemplateList()
        {
            var list = new List <string>();

            foreach (var fileName in DirectoryUtils.GetFileNames(_rootPath))
            {
                if (EFileSystemTypeUtils.IsZip(PathUtils.GetExtension(fileName)))
                {
                    list.Add(fileName);
                }
            }
            return(list);
        }
コード例 #18
0
ファイル: PageUtils.cs プロジェクト: justgohead/cms-1
        public static void Download(HttpResponse response, string filePath, string fileName)
        {
            var fileType       = PathUtils.GetExtension(filePath);
            var fileSystemType = EFileSystemTypeUtils.GetEnumType(fileType);

            response.Buffer = true;
            response.Clear();
            response.ContentType = EFileSystemTypeUtils.GetResponseContentType(fileSystemType);
            response.AddHeader("Content-Disposition", "attachment; filename=" + UrlEncode(fileName));
            response.WriteFile(filePath);
            response.Flush();
            response.End();
        }
コード例 #19
0
        public bool UploadContentPhotoSwfUpload(out string message, out string url, out string smallUrl, out string largeUrl)
        {
            message = url = smallUrl = largeUrl = string.Empty;

            if (Request.Files != null && Request.Files["Filedata"] != null)
            {
                var postedFile = Request.Files["Filedata"];

                try
                {
                    var fileName      = PathUtility.GetUploadFileName(PublishmentSystemInfo, postedFile.FileName);
                    var fileExtName   = PathUtils.GetExtension(fileName).ToLower();
                    var directoryPath = PathUtility.GetUploadDirectoryPath(PublishmentSystemInfo, fileExtName);
                    var fileNameSmall = "small_" + fileName;
                    var filePath      = PathUtils.Combine(directoryPath, fileName);
                    var filePathSmall = PathUtils.Combine(directoryPath, fileNameSmall);

                    if (EFileSystemTypeUtils.IsImageOrFlashOrPlayer(fileExtName))
                    {
                        if (!PathUtility.IsImageSizeAllowed(PublishmentSystemInfo, postedFile.ContentLength))
                        {
                            FailMessage("上传失败,上传图片超出规定文件大小!");
                            return(false);
                        }

                        postedFile.SaveAs(filePath);

                        FileUtility.AddWaterMark(PublishmentSystemInfo, filePath);

                        var widthSmall = 200;
                        ImageUtils.MakeThumbnail(filePath, filePathSmall, widthSmall, 0, true);

                        url = PageUtility.GetPublishmentSystemUrlByPhysicalPath(PublishmentSystemInfo, filePathSmall);

                        smallUrl = PageUtility.GetVirtualUrl(PublishmentSystemInfo, url);
                        largeUrl = PageUtility.GetVirtualUrl(PublishmentSystemInfo, PageUtility.GetPublishmentSystemUrlByPhysicalPath(PublishmentSystemInfo, filePath));
                        return(true);
                    }
                    else
                    {
                        message = "您必须上传图片文件!";
                    }
                }
                catch (Exception ex)
                {
                    message = ex.Message;
                }
            }
            return(false);
        }
コード例 #20
0
ファイル: RegexUtils.cs プロジェクト: yankaics/cms-1
        public static List <string> GetStyleImageUrls(string baseUrl, string html)
        {
            const string regex     = "url\\((?<url>[^\\(\\)]*)\\)";
            var          arraylist = GetUrls(regex, html, baseUrl);
            var          list      = new List <string>();

            foreach (var url in arraylist)
            {
                if (!list.Contains(url) && EFileSystemTypeUtils.IsImage(PathUtils.GetExtension(url)))
                {
                    list.Add(url);
                }
            }
            return(list);
        }
コード例 #21
0
ファイル: PageFileManagement.cs プロジェクト: yankaics/cms-1
        private void FillFileSystemsToList(bool isReload)
        {
            var builder = new StringBuilder();

            builder.Append("<table class=\"table table-noborder table-hover\"><tr class=\"info thead\"><td>名称</td><td width=\"80\">大小</td><td width=\"120\">类型</td><td width=\"120\">修改日期</td><td width=\"40\"><input type=\"checkbox\" onclick=\"_checkFormAll(this.checked)\" /></td></tr>");
            var directoryUrl = PageUtility.GetPublishmentSystemUrl(PublishmentSystemInfo, _relatedPath);

            var fileSystemInfoExtendCollection = FileManager.GetFileSystemInfoExtendCollection(_directoryPath, isReload);

            foreach (FileSystemInfoExtend subDirectoryInfo in fileSystemInfoExtendCollection.Folders)
            {
                if (string.IsNullOrEmpty(_relatedPath))
                {
                    if (StringUtils.EqualsIgnoreCase(subDirectoryInfo.Name, "api"))
                    {
                        continue;
                    }
                }
                string fileNameString =
                    $"<img src={SiteServerAssets.GetFileSystemIconUrl(EFileSystemType.Directory, false)} border=0 /> {subDirectoryInfo.Name}";
                var    fileSystemTypeString = "文件夹";
                var    fileModifyDateTime   = subDirectoryInfo.LastWriteTime;
                var    linkUrl = GetRedirectUrl(PublishmentSystemId, PageUtils.Combine(_relatedPath, subDirectoryInfo.Name));
                string trHtml  =
                    $"<tr><td><nobr><a href=\"{linkUrl}\">{fileNameString}</a></nobr></td><td class=\"center\">&nbsp;</td><td class=\"center\">{fileSystemTypeString}</td><td class=\"center\">{DateUtils.GetDateAndTimeString(fileModifyDateTime, EDateFormatType.Day, ETimeFormatType.ShortTime)}</td><td class=\"center\"><input type=\"checkbox\" name=\"DirectoryNameCollection\" value=\"{subDirectoryInfo.Name}\" /></td></tr>";
                builder.Append(trHtml);
            }

            foreach (FileSystemInfoExtend fileInfo in fileSystemInfoExtendCollection.Files)
            {
                var    fileExt        = fileInfo.Type;
                var    fileSystemType = EFileSystemTypeUtils.GetEnumType(fileExt);
                string fileNameString =
                    $"<img src={SiteServerAssets.GetFileSystemIconUrl(fileSystemType, false)} border=0 /> {fileInfo.Name}";
                var fileSystemTypeString = (fileSystemType == EFileSystemType.Unknown) ?
                                           $"{fileExt.TrimStart('.').ToUpper()} 文件"
                    : EFileSystemTypeUtils.GetText(fileSystemType);
                var    fileKBSize         = TranslateUtils.GetKbSize(fileInfo.Size);
                var    fileModifyDateTime = fileInfo.LastWriteTime;
                var    linkUrl            = PageUtils.Combine(directoryUrl, fileInfo.Name);
                string trHtml             =
                    $"<tr><td><nobr><a href=\"{linkUrl}\" target=\"_blank\">{fileNameString}</a></nobr></td><td class=\"center\">{fileKBSize} KB</td><td class=\"center\">{fileSystemTypeString}</td><td class=\"center\">{DateUtils.GetDateAndTimeString(fileModifyDateTime, EDateFormatType.Day, ETimeFormatType.ShortTime)}</td><td class=\"center\"><input type=\"checkbox\" name=\"FileNameCollection\" value=\"{fileInfo.Name}\" /></td></tr>";
                builder.Append(trHtml);
            }

            builder.Append("</table>");
            ltlFileSystems.Text = builder.ToString();
        }
コード例 #22
0
ファイル: RegexUtils.cs プロジェクト: yankaics/cms-1
        public static List <string> GetOriginalStyleImageUrls(string html)
        {
            //background-image: url(../images/leftline.gif);
            const string regex     = "url\\((?<url>[^\\(\\)]*)\\)";
            var          arraylist = GetContents("url", regex, html);
            var          list      = new List <string>();

            foreach (var url in arraylist)
            {
                if (!list.Contains(url) && EFileSystemTypeUtils.IsImage(PathUtils.GetExtension(url)))
                {
                    list.Add(url);
                }
            }
            return(list);
        }
コード例 #23
0
        private void FillFileSystemsToList(bool isReload)
        {
            var builder = new StringBuilder();

            builder.Append(@"<table class=""table table-bordered table-hover""><tr class=""info thead""><td>名称</td><td width=""80"">大小</td><td width=""120"">类型</td><td width=""120"">修改日期</td></tr>");
            var directoryUrl = PageUtility.GetSiteUrlByPhysicalPath(SiteInfo, _directoryPath, true);

            var fileSystemInfoExtendCollection = FileManager.GetFileSystemInfoExtendCollection(_directoryPath, isReload);

            foreach (FileSystemInfoExtend subDirectoryInfo in fileSystemInfoExtendCollection.Folders)
            {
                string fileNameString =
                    $"<img src={SiteServerAssets.GetFileSystemIconUrl(EFileSystemType.Directory, false)} border=0 /> {subDirectoryInfo.Name}";
                var    fileSystemTypeString = "文件夹";
                var    fileModifyDateTime   = subDirectoryInfo.LastWriteTime;
                var    linkUrl = GetRedirectUrl(PageUtils.Combine(_currentRootPath, subDirectoryInfo.Name));
                string trHtml  =
                    $"<tr><td><nobr><a href=\"{linkUrl}\">{fileNameString}</a></nobr></td><td align=\"right\">&nbsp;</td><td align=\"center\">{fileSystemTypeString}</td><td align=\"center\">{DateUtils.GetDateString(fileModifyDateTime, EDateFormatType.Day)}</td></tr>";
                builder.Append(trHtml);
            }

            foreach (FileSystemInfoExtend fileInfo in fileSystemInfoExtendCollection.Files)
            {
                string fileNameString =
                    $"<img src={GetFileSystemIconUrl(SiteInfo, fileInfo, false)} border=0 /> {fileInfo.Name}";
                var fileSystemType       = EFileSystemTypeUtils.GetEnumType(fileInfo.Type);
                var fileSystemTypeString = (fileSystemType == EFileSystemType.Unknown) ?
                                           $"{fileInfo.Type.TrimStart('.').ToUpper()} 文件"
                    : EFileSystemTypeUtils.GetText(fileSystemType);
                var fileKbSize = fileInfo.Size / 1024;
                if (fileKbSize == 0)
                {
                    fileKbSize = 1;
                }
                var fileModifyDateTime = fileInfo.LastWriteTime;
                var linkUrl            = PageUtils.Combine(directoryUrl, fileInfo.Name);
                var attachmentUrl      = linkUrl.Replace(SiteInfo.Additional.WebUrl, "@");
                //string fileViewUrl = Modal.FileView.GetOpenWindowString(base.SiteId, attachmentUrl);
                var    fileViewUrl = ModalFileView.GetOpenWindowStringHidden(SiteId, attachmentUrl, _hiddenClientId);
                string trHtml      =
                    $"<tr><td><a href=\"javascript:;\" onClick=\"window.parent.SelectAttachment('{_hiddenClientId}', '{attachmentUrl.Replace("'", "\\'")}', '{fileViewUrl.Replace("'", "\\'")}');{LayerUtils.CloseScript}\" title=\"点击此项选择此附件\">{fileNameString}</a></td><td align=\"right\">{fileKbSize} KB</td><td align=\"center\">{fileSystemTypeString}</td><td align=\"center\">{DateUtils.GetDateString(fileModifyDateTime, EDateFormatType.Day)}</td></tr>";
                builder.Append(trHtml);
            }

            builder.Append("</table>");
            LtlFileSystems.Text = builder.ToString();
        }
コード例 #24
0
        public void Page_Load(object sender, EventArgs e)
        {
            if (IsForbidden)
            {
                return;
            }

            PageUtils.CheckRequestParameter("PublishmentSystemID");

            if (Body.IsQueryExists("FileName"))
            {
                fileName = Body.GetQueryString("FileName");
                fileName = PathUtils.RemoveParentPath(fileName);
            }
            directoryPath = PathUtility.MapPath(PublishmentSystemInfo, "@/js");

            if (!IsPostBack)
            {
                var pageTitle = string.IsNullOrEmpty(fileName) ? "添加脚本文件" : "编辑脚本文件";
                BreadCrumb(AppManager.Cms.LeftMenu.IdTemplate, pageTitle, AppManager.Cms.Permission.WebSite.Template);

                ltlPageTitle.Text = pageTitle;

                ECharsetUtils.AddListItems(Charset);

                if (fileName != null)
                {
                    if (!EFileSystemTypeUtils.IsJs(PathUtils.GetExtension(fileName)))
                    {
                        PageUtils.RedirectToErrorPage("对不起,此文件无法编辑!");
                    }
                    else
                    {
                        RelatedFileName.Text       = PathUtils.RemoveExtension(fileName);
                        ltlCreatedFileExtName.Text = PathUtils.GetExtension(fileName);
                        var fileCharset = FileUtils.GetFileCharset(PathUtils.Combine(directoryPath, fileName));
                        ControlUtils.SelectListItemsIgnoreCase(Charset, ECharsetUtils.GetValue(fileCharset));
                        Content.Text = FileUtils.ReadText(PathUtils.Combine(directoryPath, fileName), fileCharset);
                    }
                }
                else
                {
                    ltlCreatedFileExtName.Text = ".js";
                    ControlUtils.SelectListItemsIgnoreCase(Charset, PublishmentSystemInfo.Additional.Charset);
                }
            }
        }
コード例 #25
0
        public IHttpActionResult Upload()
        {
            try
            {
                var request = new AuthenticatedRequest();
                if (!request.IsAdminLoggin ||
                    !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.AppPermissions.SettingsConfigAdmin))
                {
                    return(Unauthorized());
                }

                var adminLogoUrl = string.Empty;

                foreach (string name in HttpContext.Current.Request.Files)
                {
                    var postFile = HttpContext.Current.Request.Files[name];

                    if (postFile == null)
                    {
                        return(BadRequest("Could not read image from body"));
                    }

                    var fileName = postFile.FileName;
                    var filePath = PathUtils.GetAdminDirectoryPath(fileName);

                    if (!EFileSystemTypeUtils.IsImage(PathUtils.GetExtension(fileName)))
                    {
                        return(BadRequest("image file extension is not correct"));
                    }

                    postFile.SaveAs(filePath);

                    adminLogoUrl = fileName;
                }

                return(Ok(new
                {
                    Value = adminLogoUrl
                }));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }
コード例 #26
0
        public static string GetFileSystemIconUrl(SiteInfo siteInfo, FileSystemInfoExtend fileInfo, bool isLargeIcon)
        {
            EFileSystemType fileSystemType;

            if (PathUtility.IsVideoExtenstionAllowed(siteInfo, fileInfo.Type))
            {
                fileSystemType = EFileSystemType.Video;
            }
            else if (PathUtility.IsImageExtenstionAllowed(siteInfo, fileInfo.Type))
            {
                fileSystemType = EFileSystemType.Image;
            }
            else
            {
                fileSystemType = EFileSystemTypeUtils.GetEnumType(fileInfo.Type);
            }
            return(SiteServerAssets.GetFileSystemIconUrl(fileSystemType, isLargeIcon));
        }
コード例 #27
0
ファイル: TxtObject.cs プロジェクト: ym1100/siteserver-cms
        public static List <ContentInfo> GetContentListByTxtFile(string directoryPath, SiteInfo siteInfo, ChannelInfo nodeInfo)
        {
            var contentInfoList = new List <ContentInfo>();

            var filePaths = DirectoryUtils.GetFilePaths(directoryPath);

            foreach (var filePath in filePaths)
            {
                if (!EFileSystemTypeUtils.Equals(EFileSystemType.Txt, PathUtils.GetExtension(filePath)))
                {
                    continue;
                }

                try
                {
                    var content = FileUtils.ReadText(filePath, ECharset.gb2312);
                    if (!string.IsNullOrEmpty(content))
                    {
                        content = content.Trim();
                        var title = StringUtils.GetFirstOfStringCollection(content, '\r');
                        if (!string.IsNullOrEmpty(title))
                        {
                            var dict = new Dictionary <string, object>
                            {
                                { ContentAttribute.Title, title.Trim() },
                                { ContentAttribute.SiteId, siteInfo.Id },
                                { ContentAttribute.ChannelId, nodeInfo.Id },
                                { ContentAttribute.LastEditDate, DateTime.Now }
                            };
                            var contentInfo = new ContentInfo(dict);
                            contentInfo.Set(BackgroundContentAttribute.Content, StringUtils.ReplaceNewlineToBr(content.Replace(title, string.Empty).Trim()));

                            contentInfoList.Add(contentInfo);
                        }
                    }
                }
                catch
                {
                    // ignored
                }
            }

            return(contentInfoList);
        }
コード例 #28
0
ファイル: PageTemplateInclude.cs プロジェクト: yankaics/cms-1
        public void BindGrid()
        {
            DirectoryUtils.CreateDirectoryIfNotExists(_directoryPath);
            var fileNames         = DirectoryUtils.GetFileNames(_directoryPath);
            var fileNameArrayList = new ArrayList();

            foreach (var fileName in fileNames)
            {
                if (EFileSystemTypeUtils.IsTextEditable(EFileSystemTypeUtils.GetEnumType(PathUtils.GetExtension(fileName))))
                {
                    if (!fileName.Contains("_parsed"))
                    {
                        fileNameArrayList.Add(fileName);
                    }
                }
            }
            DgFiles.DataSource = fileNameArrayList;
            DgFiles.DataBind();
        }
コード例 #29
0
        //将编辑器中图片上传至本机
        public static string SaveImage(SiteInfo siteInfo, string content)
        {
            var originalImageSrcs = RegexUtils.GetOriginalImageSrcs(content);

            foreach (var originalImageSrc in originalImageSrcs)
            {
                if (!PageUtils.IsProtocolUrl(originalImageSrc) ||
                    StringUtils.StartsWithIgnoreCase(originalImageSrc, PageUtils.ApplicationPath) ||
                    StringUtils.StartsWithIgnoreCase(originalImageSrc, siteInfo.Additional.WebUrl))
                {
                    continue;
                }
                var fileExtName = PageUtils.GetExtensionFromUrl(originalImageSrc);
                if (!EFileSystemTypeUtils.IsImageOrFlashOrPlayer(fileExtName))
                {
                    continue;
                }

                var fileName      = GetUploadFileName(siteInfo, originalImageSrc);
                var directoryPath = GetUploadDirectoryPath(siteInfo, fileExtName);
                var filePath      = PathUtils.Combine(directoryPath, fileName);

                try
                {
                    if (!FileUtils.IsFileExists(filePath))
                    {
                        WebClientUtils.SaveRemoteFileToLocal(originalImageSrc, filePath);
                        if (EFileSystemTypeUtils.IsImage(PathUtils.GetExtension(fileName)))
                        {
                            FileUtility.AddWaterMark(siteInfo, filePath);
                        }
                    }
                    var fileUrl = PageUtility.GetSiteUrlByPhysicalPath(siteInfo, filePath, true);
                    content = content.Replace(originalImageSrc, fileUrl);
                }
                catch
                {
                    // ignored
                }
            }
            return(content);
        }
コード例 #30
0
        public string GetPreviewImageSrc(string adType)
        {
            var imageUrl = ChildMenuIcon.Text;

            if (!string.IsNullOrEmpty(imageUrl))
            {
                var extension = PathUtils.GetExtension(imageUrl);
                if (EFileSystemTypeUtils.IsImage(extension))
                {
                    return(PageUtility.ParseNavigationUrl(PublishmentSystemInfo, imageUrl));
                }
                else if (EFileSystemTypeUtils.IsFlash(extension))
                {
                    return(SiteServerAssets.GetIconUrl("flash.jpg"));
                }
                else if (EFileSystemTypeUtils.IsPlayer(extension))
                {
                    return(SiteServerAssets.GetIconUrl("player.gif"));
                }
            }
            return(SiteServerAssets.GetIconUrl("empty.gif"));
        }