Пример #1
0
        /// <summary>
        /// 上传图片文件并上传至微信
        /// </summary>
        /// <returns></returns>
        public async Task <JsonResult> UploadMatialPic()
        {
            try
            {
                var profilePictureFile = Request.Form.Files.First();

                //Check input
                if (profilePictureFile == null)
                {
                    throw new UserFriendlyException(L("ProfilePicture_Change_Error"));
                }

                if (profilePictureFile.Length > 2097152) //2MB.
                {
                    throw new UserFriendlyException(L("ProfilePicture_Warn_SizeLimit"));
                }

                byte[] fileBytes;
                using (var stream = profilePictureFile.OpenReadStream())
                {
                    fileBytes = stream.GetAllBytes();
                }

                if (!ImageFormatHelper.GetRawImageFormat(fileBytes).IsIn(ImageFormat.Jpeg, ImageFormat.Png, ImageFormat.Gif))
                {
                    throw new Exception("上传文件非图片文件");
                }

                //Delete old temp profile pictures
                AppFileHelper.DeleteFilesInFolderIfExists(_appFolders.TempFileDownloadFolder, "martialPic_" + AbpSession.GetUserId());

                //Save new picture
                var fileInfo     = new FileInfo(profilePictureFile.FileName);
                var tempFileName = "martialPic_" + AbpSession.GetUserId() + Guid.NewGuid().ToString() + fileInfo.Extension;
                var tempFilePath = Path.Combine(_appFolders.TempFileDownloadFolder, tempFileName);
                await System.IO.File.WriteAllBytesAsync(tempFilePath, fileBytes);

                var virtualPath = _matialFileService.MatialFileTempPath + tempFileName;


                var mediaId = "";
                try
                {
                    mediaId = await _wxMediaAppService.UploadMedia(tempFilePath, "");//上传至微信
                }
                catch (Exception e)
                {
                    Logger.Error("上传微信错误,错误信息:" + e.Message + ";错误堆栈:" + e.StackTrace);
                }

                //var mediaId = "测试";


                return(Json(new AjaxResponse(new { fileName = tempFileName, fileFullPath = tempFilePath, fileVirtualPath = virtualPath, mediaID = mediaId })));
            }
            catch (UserFriendlyException ex)
            {
                return(Json(new AjaxResponse(new ErrorInfo(ex.Message))));
            }
        }
        public override async Task <MpMediaVoiceDto> Create(MpMediaVoiceDto input)
        {
            input.MpID = await _userMpAppService.GetDefaultMpId();

            if (string.IsNullOrWhiteSpace(input.MediaID))
            {
                input.MediaID = await _wxMediaAppService.UploadMedia(input.FileID, input.MediaID);
            }
            input.LastModificationTime = DateTime.Now;
            return(await base.Create(input));
        }