/// <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); }
/// <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); }
//更新店铺时语音转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); } }