/// <summary> /// 上传并保存微信素材 /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task <IActionResult> SaveAndUpdate(MpMediaArticleDto input) { MpMediaArticleDto result = null; input.LastModificationTime = DateTime.Now; if (Request.Form.Files.Count > 0) { var profilePictureFile = Request.Form.Files.First(); byte[] fileBytes; using (var stream = profilePictureFile.OpenReadStream()) { fileBytes = stream.GetAllBytes(); } var fileInfo = new FileInfo(profilePictureFile.FileName); var extra = fileInfo.Extension.Substring(fileInfo.Extension.IndexOf(".") + 1); string fileUrl = await _fileServer.UploadFile(fileBytes, extra, MpMessageType.mpnews.ToString()); input.FilePathOrUrl = fileUrl; Logger.Info($"封面图片URL:{fileUrl}"); var filename = fileUrl.Substring(fileUrl.LastIndexOf("/") + 1); input.PicMediaID = await _wxMediaUpload.UploadAndGetMediaID(input.MpID, fileUrl, MpMessageType.image); Logger.Info($"封面图片MediaID:{input.PicMediaID}"); await _mpMediaImageAppService.Create(new MpMediaImageDto { FileID = input.PicFileID, FilePathOrUrl = input.FilePathOrUrl, MpID = input.MpID, Name = input.Title + "封面图片", MediaID = input.PicMediaID, LastModificationTime = DateTime.Now }); } //更换微信图文中图片链接 var domain = _webUrlService.GetServerRootAddress(); domain = domain.Substring(0, domain.Length - 1); input.WxContent = await _mpMediaArticleAppService.UpdateWxContentString(input.Content, input.ArticleGrid, domain); //获取图文mediaID if (string.IsNullOrEmpty(input.MediaID)) { input.MediaID = await _wxMediaUpload.UploadArticleAndGetMediaID(input.MpID, new Senparc.Weixin.MP.AdvancedAPIs.GroupMessage.NewsModel { author = input.Author, title = input.Title, digest = input.Description, content = input.WxContent, content_source_url = input.AUrl, show_cover_pic = input.ShowPic, thumb_media_id = input.PicMediaID, need_open_comment = input.EnableComment, only_fans_can_comment = input.OnlyFansComment }); } else { input.MediaID = await _wxMediaUpload.UploadArticleAndGetMediaID(input.MpID, new Senparc.Weixin.MP.AdvancedAPIs.GroupMessage.NewsModel { author = input.Author, title = input.Title, digest = input.Description, content = input.WxContent, content_source_url = input.AUrl, show_cover_pic = input.ShowPic, thumb_media_id = input.PicMediaID, need_open_comment = input.EnableComment, only_fans_can_comment = input.OnlyFansComment }, false, input.MediaID); } if (input.Id == 0) { result = await _mpMediaArticleAppService.Create(input); } else { result = await _mpMediaArticleAppService.Update(input); } return(Json(result)); }
public CreateOrEditMpMediaArticleViewModel(MpMediaArticleDto output) { output.MapTo(this); }