Ejemplo n.º 1
0
        /// <summary>
        /// 获取指定目录下的图片文件名列表
        /// </summary>
        /// <param name="realPath">实际路径</param>
        /// <returns></returns>
        private List <CListItem> GetImageToList(string realPath, int size)
        {
            List <CListItem> list = new List <CListItem>();

            string[] fileArray = GetImages(realPath, "*.gif", "*.jpg", "*.png");
            if (fileArray != null)
            {
                foreach (string file in fileArray)
                {
                    string fileName    = Path.GetFileName(file);
                    string displayText = Path.GetFileNameWithoutExtension(file);
                    //文件名需要去除()和[]等符号
                    displayText = CRegex.Replace(displayText, @"[)\];,\t\r ]|[\n]", "", 0);
                    displayText = CRegex.Replace(displayText, @"[(\[]", "-", 0);
                    //displayText = displayText.Replace("(", "-").Replace(")", "-").Replace("[", "-").Replace("]", "-");

                    //避免冲突,样式名称加上尺寸
                    //16*16的名称:icon-005   32*32的名称:icon-32-005
                    if (size == 16)
                    {
                        displayText = string.Format("icon-{0}", displayText);
                    }
                    else
                    {
                        displayText = string.Format("icon-{0}-{1}", size, displayText);
                    }

                    list.Add(new CListItem(fileName, displayText));
                }
            }
            return(list);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 将Unicode字串\u.\u.格式字串转换为原始字符串
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public static string UnicodeToString(string str)
        {
            string outStr = "";

            str = CRegex.Replace(str, "[\r\n]", "", 0);

            if (!string.IsNullOrEmpty(str))
            {
                string[] strlist = str.Replace("\\u", "㊣").Split('㊣');
                try
                {
                    outStr += strlist[0];
                    for (int i = 1; i < strlist.Length; i++)
                    {
                        string strTemp = strlist[i];
                        if (!string.IsNullOrEmpty(strTemp) && strTemp.Length >= 4)
                        {
                            strTemp = strlist[i].Substring(0, 4);
                            //将unicode字符转为10进制整数,然后转为char中文字符
                            outStr += (char)int.Parse(strTemp, System.Globalization.NumberStyles.HexNumber);
                            outStr += strlist[i].Substring(4);
                        }
                    }
                }
                catch (FormatException ex)
                {
                    outStr += "Erorr";//ex.Message;
                }
            }
            return(outStr);
        }
Ejemplo n.º 3
0
        //更新店铺时语音转mp3
        public async Task <string> SendVoiceToAliOss(int voiceId, int artId, int commentId, string content = "", bool needUpdateContent = false, bool isupdate = false)
        {
            string artcont = content;

            if (voiceId < 1)
            {
                return(string.Empty);
            }
            C_Attachment model = GetModel(voiceId);

            if (model == null)
            {
                return(string.Empty);
            }
            model.itemId = artId;
            try
            {
                if (!string.IsNullOrEmpty(model.filepath))
                {
                    if (isupdate)
                    {
                        if (!model.filepath.Contains("temp"))//不是新上传的,停止操作!
                        {
                            log4net.LogHelper.WriteInfo(this.GetType(), "观察日志:修改文章停止旧语音移动。文章ID=" + artId + "语音路径" + model.filepath);
                            return(string.Empty);
                        }
                    }
                    var    bucket      = ConfigurationManager.AppSettings["BucketName"];
                    int    whichDomain = 1;
                    string TemplateId  = string.Empty;
                    string PipelineId  = string.Empty;
                    TemplateId = ConfigurationManager.AppSettings["VoiceTemplateId"] ?? "42d5aac40e6a50bf13045a40aeb83b6f";
                    PipelineId = ConfigurationManager.AppSettings["PipelineId"] ?? "4bc9dd15cb3d48e39e0824e19c41defb";
                    var finalVoiceKey    = string.Empty;
                    var finalVoiceFolder = AliOSSHelper.GetOssVoiceKey("mp3", false, "voice/folder", out finalVoiceKey, whichDomain);
                    //上传的本地音频。并且不是mp3|| 微信语音
                    if (!string.IsNullOrEmpty(model.VoiceServerId))
                    {
                        //转换mp3
                        bool submitResult = await AliMTSHelper.SubmitJobs(model.filepath, finalVoiceKey, bucket, TemplateId, PipelineId, "", whichDomain);

                        if (submitResult)
                        {//转换成功。更新路径
                            model.thumbnail = finalVoiceKey;
                            //图文混排内容里的音频替换
                            if (needUpdateContent)
                            {
                                var voiceurl = model.filepath;
                                artcont = CRegex.Replace(artcont, voiceurl, finalVoiceKey, 0);
                            }
                        }//音频转换失败
                        else
                        {
                            log4net.LogHelper.WriteInfo(this.GetType(), "语音给AliOSS转换格式失败!ID为" + model.id + "==" + model.filepath);
                        }
                    }//mp3移动
                    else
                    {
                        //本地音频mp3格式从temp 拷贝
                        Task <bool> moveResult = Task <bool> .Factory.StartNew(
                            () =>
                        {
                            return(AliOSSHelper.CopyObect(model.thumbnail, finalVoiceKey));
                        }
                            );

                        ;
                        if (await moveResult)
                        {//移动成功。更新路径
                            model.thumbnail = finalVoiceKey;
                            //图文混排内容里的音频替换
                            if (needUpdateContent)
                            {
                                var voiceurl = model.filepath;
                                artcont = CRegex.Replace(artcont, voiceurl, finalVoiceKey, 0);
                            }
                        }
                        // 移动失败
                        else
                        {
                            log4net.LogHelper.WriteInfo(this.GetType(), "本地音频AliOSS临时文件夹移动到正式文件夹失败!ID为" + model.id);
                        }
                    }
                }

                MySqlParameter[] param = new MySqlParameter[] { new MySqlParameter("@itemId", artId),
                                                                new MySqlParameter("@filepath", model.filepath),
                                                                new MySqlParameter("@thumbnail", model.thumbnail),
                                                                new MySqlParameter("@id", model.id) };

                string sql = "update C_Attachment set itemId=@itemId,filepath=@filepath,thumbnail=@thumbnail where id=@id";
                SqlMySql.ExecuteNonQuery(Utility.dbEnum.MINIAPP.ToString(), System.Data.CommandType.Text, sql, param);
                RedisUtil.Remove(string.Format(CImageKey, model.itemId, model.itemType));
                RemoveRedis(model.itemId, model.itemType);

                return(artcont);
            }
            catch (Exception ex)
            {
                log4net.LogHelper.WriteError(this.GetType(), new Exception("voiceid" + model.id + "移动语音失败:" + ex.Message));
                return(string.Empty);
            }
        }