Exemple #1
0
 /// <summary>
 /// 上传媒体文件
 /// </summary>
 /// <param name="accessToken"></param>
 /// <param name="type"></param>
 /// <param name="file"></param>
 /// <param name="timeOut">代理请求超时时间(毫秒)</param>
 /// <returns></returns>
 public static UploadResultJson Upload(string accessToken, UploadMediaFileType type, string file, int timeOut = Config.TIME_OUT)
 {
     var url = string.Format("http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}", accessToken, type.ToString());
     var fileDictionary = new Dictionary<string, string>();
     fileDictionary["media"] = file;
     return HttpUtility.Post.PostFileGetJson<UploadResultJson>(url, null, fileDictionary, null, timeOut: timeOut);
 }
Exemple #2
0
 /// <summary>
 /// 上传临时媒体文件
 /// </summary>
 /// <param name="accessToken">调用接口凭证</param>
 /// <param name="type">媒体文件类型,分别有图片(image)、语音(voice)、视频(video),普通文件(file)</param>
 /// <param name="media">form-data中媒体文件标识,有filename、filelength、content-type等信息</param>
 /// <param name="timeOut">代理请求超时时间(毫秒)</param>
 /// <returns></returns>
 public static UploadTemporaryResultJson Upload(string accessToken, UploadMediaFileType type, string media, int timeOut = Config.TIME_OUT)
 {
     var url = string.Format("https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}", accessToken.AsUrlData(), type.ToString());
     var fileDictionary = new Dictionary<string, string>();
     fileDictionary["media"] = media;
     return Post.PostFileGetJson<UploadTemporaryResultJson>(url, null, fileDictionary, null, null,null, timeOut);
 }
 public static UpLoadResultJson Upload(string  accessToken,UploadMediaFileType  type,string file)
 {
     var urlFormat = "https://api.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}";
     var fileDicionary = new Dictionary<string, string>();
     fileDicionary["media"] = file;
     return ApiHelper.Upload<UpLoadResultJson>(accessToken, urlFormat, fileDicionary, type.ToString());
 }
Exemple #4
0
 /// <summary>
 /// 上传媒体文件
 /// </summary>
 /// <param name="accessToken">调用接口凭证</param>
 /// <param name="type">媒体文件类型,分别有图片(image)、语音(voice)、视频(video),普通文件(file)</param>
 /// <param name="media">form-data中媒体文件标识,有filename、filelength、content-type等信息</param>
 /// <returns></returns>
 public static UploadResultJson Upload(string accessToken, UploadMediaFileType type, string media)
 {
     var url = string.Format("https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}", accessToken, type.ToString());
     var fileDictionary = new Dictionary<string, string>();
     fileDictionary["media"] = media;
     return HttpUtility.Post.PostFileGetJson<UploadResultJson>(url, null, fileDictionary, null);
 }
Exemple #5
0
        public static UploadResultJson Upload(string accessToken, UploadMediaFileType type, HttpPostedFile postfile)
        {
            //微信公众号上传媒体文件接口地址
            var urlFormat = "http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}";

            return(Upload <UploadResultJson>(accessToken, urlFormat, postfile, type.ToString()));
        }
        /// <summary>
        /// 媒体文件上传接口
        ///注意事项
        ///1.上传的媒体文件限制:
        ///图片(image) : 1MB,支持JPG格式
        ///语音(voice):1MB,播放长度不超过60s,支持MP4格式
        ///视频(video):10MB,支持MP4格式
        ///缩略图(thumb):64KB,支持JPG格式
        ///2.媒体文件在后台保存时间为3天,即3天后media_id失效
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="type">上传文件类型</param>
        /// <param name="fileName">上传文件完整路径+文件名</param>
        /// <returns></returns>
        public static UploadMediaFileResult UploadMediaFile(string accessToken, UploadMediaFileType type, string fileName)
        {
            var cookieContainer = new CookieContainer();
            var fileStream = FileHelper.GetFileStream(fileName);

            var url = string.Format("http://api.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}&filename={2}&filelength={3}",
                accessToken, type.ToString(), Path.GetFileName(fileName), fileStream != null ? fileStream.Length : 0);
            UploadMediaFileResult result = Post.PostGetJson<UploadMediaFileResult>(url, cookieContainer, fileStream);
            return result;
        }
Exemple #7
0
        /// <summary>
        /// 新增临时素材(原上传媒体文件)
        /// </summary>
        /// <param name="accessTokenOrAppId"></param>
        /// <param name="type"></param>
        /// <param name="file"></param>
        /// <param name="timeOut">代理请求超时时间(毫秒)</param>
        /// <returns></returns>
        public static UploadTemporaryMediaResult UploadTemporaryMedia(string accessTokenOrAppId, UploadMediaFileType type, string file, int timeOut = Config.TIME_OUT)
        {
            return ApiHandlerWapper.TryCommonApi(accessToken =>
            {
                var url = string.Format("https://api.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}", accessToken.AsUrlData(), type.ToString().AsUrlData());
                var fileDictionary = new Dictionary<string, string>();
                fileDictionary["media"] = file;
                return Post.PostFileGetJson<UploadTemporaryMediaResult>(url, null, fileDictionary, null, timeOut: timeOut);

            }, accessTokenOrAppId);
        }
Exemple #8
0
        /// <summary>
        /// 媒体文件上传接口
        ///注意事项
        ///1.上传的媒体文件限制:
        ///图片(image) : 1MB,支持JPG格式
        ///语音(voice):1MB,播放长度不超过60s,支持MP4格式
        ///视频(video):10MB,支持MP4格式
        ///缩略图(thumb):64KB,支持JPG格式
        ///2.媒体文件在后台保存时间为3天,即3天后media_id失效
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="type">上传文件类型</param>
        /// <param name="fileName">上传文件完整路径+文件名</param>
        /// <returns></returns>
        public static UploadMediaFileResult UploadMediaFile(string accessToken, UploadMediaFileType type, string fileName)
        {
            var cookieContainer = new CookieContainer();
            var fileStream      = FileHelper.GetFileStream(fileName);

            var url = string.Format("http://api.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}&filename={2}&filelength={3}",
                                    accessToken, type.ToString(), Path.GetFileName(fileName), fileStream != null ? fileStream.Length : 0);
            UploadMediaFileResult result = Post.PostGetJson <UploadMediaFileResult>(url, cookieContainer, fileStream);

            return(result);
        }
        /// <summary>
        /// 新增临时素材(原上传媒体文件)
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="type"></param>
        /// <param name="file"></param>
        /// <param name="timeOut">代理请求超时时间(毫秒)</param>
        /// <returns></returns>
        public static UploadTemporaryMediaResult UploadTemporaryMedia(string accessToken, UploadMediaFileType type, string file, int timeOut = Config.TIME_OUT)
        {




            var url = string.Format("http://api.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}", accessToken, type.ToString());
            var fileDictionary = new Dictionary<string, string>();
            fileDictionary["media"] = file;
            var result = HTTPPost.PostFileGetJson<UploadTemporaryMediaResult>(url, null, fileDictionary, null);
            return result;
        }
Exemple #10
0
        /// <summary>
        /// 获取图片、视频、语音素材列表
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="type">素材的类型,图片(image)、视频(video)、语音 (voice)</param>
        /// <param name="offset"></param>
        /// <param name="count"></param>
        /// <param name="timeOut"></param>
        /// <returns></returns>
        public static MediaList_OthersResult GetOthersMediaList(string accessToken, UploadMediaFileType type, int offset,
                                                                int count, int timeOut = Config.TIME_OUT)
        {
            string url  = string.Format("https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token={0}", accessToken);
            var    date = new
            {
                type   = type.ToString(),
                offset = offset,
                count  = count
            };

            return(CommonJsonSend.Send <MediaList_OthersResult>(null, url, date, CommonJsonSendType.POST, timeOut));
        }
Exemple #11
0
        /// <summary>
        /// 【异步方法】获取素材列表
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="type"></param>
        /// <param name="agentId"></param>
        /// <param name="offset"></param>
        /// <param name="count"></param>
        /// <param name="timeOut"></param>
        /// <returns></returns>
        public static async Task <BatchGetMaterialResult> BatchGetMaterialAsync(string accessToken, UploadMediaFileType type, int agentId, int offset, int count, int timeOut = Config.TIME_OUT)
        {
            var url = string.Format("https://qyapi.weixin.qq.com/cgi-bin/material/batchget?access_token={0}",
                                    accessToken.AsUrlData());

            var data = new
            {
                type    = type.ToString(),
                agentid = agentId, offset, count
            };

            return(await Core.CommonAPIs.CommonJsonSend.SendAsync <BatchGetMaterialResult>(null, url, data, CommonJsonSendType.POST, timeOut));
        }
Exemple #12
0
        /// <summary>
        /// 获取图片、视频、语音素材列表
        /// </summary>
        /// <param name="type">素材的类型,图片(image)、视频(video)、语音 (voice)</param>
        /// <param name="offset"></param>
        /// <param name="count"></param>
        /// <param name="timeOut"></param>
        /// <returns></returns>
        public MediaList_OthersResult GetOthersMediaList(UploadMediaFileType type, int offset, int count, int timeOut = Config.TIME_OUT)
        {
            var    accessToken = _api.GetAccessToken();
            string url         = string.Format("https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token={0}", accessToken);
            var    date        = new
            {
                type   = type.ToString(),
                offset = offset,
                count  = count
            };

            return(Post <MediaList_OthersResult>(url, date, timeOut));
        }
Exemple #13
0
        /// <summary>
        /// 获取图片、视频、语音素材列表
        /// </summary>
        /// <param name="accessTokenOrAppId"></param>
        /// <param name="type">素材的类型,图片(image)、视频(video)、语音 (voice)</param>
        /// <param name="offset"></param>
        /// <param name="count"></param>
        /// <param name="timeOut"></param>
        /// <returns></returns>
        public static MediaList_OthersResult GetOthersMediaList(string accessToken, UploadMediaFileType type, int offset,
                                                                int count)
        {
            string url = "https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token={0}";

            var date = new
            {
                type   = type.ToString(),
                offset = offset,
                count  = count
            };

            return(ApiHelper.Post <MediaList_OthersResult>(accessToken, url, date));
        }
Exemple #14
0
        /// <summary>
        /// 获取素材列表
        /// </summary>
        /// <returns></returns>
        public MaterialListResult Batchget_material(UploadMediaFileType type, int offset, int count)
        {
            return(ApiHandler.TryCommonApi(delegate(string accessToken)
            {
                var dict = new Dictionary <string, string>();
                dict.Add("type", type.ToString());
                dict.Add("offset", offset.ToString());
                dict.Add("count", count.ToString());
                HttpContent content = new StringContent(JsonConvert.SerializeObject(dict));
                var result = ApiHandler.PostGetJson <MaterialListResult>(string.Format(ApiConfig.materialbatchget_material, accessToken), content);

                return result;
            }));
        }
Exemple #15
0
        /// <summary>
        /// 获取素材列表
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="type"></param>
        /// <param name="agentId"></param>
        /// <param name="offset"></param>
        /// <param name="count"></param>
        /// <param name="timeOut"></param>
        /// <returns></returns>
        public static BatchGetMaterialResult BatchGetMaterial(string accessToken, UploadMediaFileType type, int agentId, int offset, int count, int timeOut = Config.TIME_OUT)
        {
            var url = string.Format("https://qyapi.weixin.qq.com/cgi-bin/material/batchget?access_token={0}",
                                    accessToken);

            var data = new
            {
                type    = type.ToString(),
                agentid = agentId,
                offset  = offset,
                count   = count,
            };

            return(CommonJsonSend.Send <BatchGetMaterialResult>(null, url, data, CommonJsonSendType.POST, timeOut));
        }
        /// <summary>
        /// 获取素材列表
        /// </summary>
        /// <param name="type"></param>
        /// <param name="agentId"></param>
        /// <param name="offset"></param>
        /// <param name="count"></param>
        /// <param name="timeOut"></param>
        /// <returns></returns>
        public BatchGetMaterialResult BatchGetMaterial(UploadMediaFileType type, int offset, int count, int timeOut = Config.TIME_OUT)
        {
            var agentId     = _api.GetAgentId();
            var accessToken = _api.GetAccessToken();
            var url         = string.Format("https://qyapi.weixin.qq.com/cgi-bin/material/batchget?access_token={0}", accessToken);

            var data = new
            {
                type    = type.ToString(),
                agentid = agentId,
                offset  = offset,
                count   = count,
            };

            return(Post <BatchGetMaterialResult>(url, data, timeOut));
        }
Exemple #17
0
        public static MediaList_OthersResult GetOthersMediaList(string accessTokenOrAppId, UploadMediaFileType type, int offset,
                                                                int count, int timeOut = WxConfig.TIME_OUT)
        {
            return(ApiHandlerWapper.TryCommonApi(accessToken =>
            {
                string url = string.Format(WxConfig.ApiMpHost + "/cgi-bin/material/batchget_material?access_token={0}", accessToken.AsUrlData());

                var date = new
                {
                    type = type.ToString(),
                    offset = offset,
                    count = count
                };

                return CommonJsonSend.Send <MediaList_OthersResult>(null, url, date, CommonJsonSendType.POST, timeOut);
            }, accessTokenOrAppId));
        }
Exemple #18
0
        public static async Task <MediaList_OthersResult> GetOthersMediaListAsync(string accessTokenOrAppId, UploadMediaFileType type, int offset,
                                                                                  int count, int timeOut = Config.TIME_OUT)
        {
            return(await ApiHandlerWapper.TryCommonApiAsync(async accessToken =>
            {
                string url = string.Format(Config.ApiMpHost + "/cgi-bin/material/batchget_material?access_token={0}", accessToken.AsUrlData());

                var date = new
                {
                    type = type.ToString(),
                    offset = offset,
                    count = count
                };

                return await CommonJsonSend.SendAsync <MediaList_OthersResult>(null, url, date, CommonJsonSendType.POST, timeOut).ConfigureAwait(false);
            }, accessTokenOrAppId).ConfigureAwait(false));
        }
Exemple #19
0
        public static BatchGetMaterialResult BatchGetMaterial(string accessTokenOrAppKey, UploadMediaFileType type, int agentId, int offset, int count, int timeOut = WxConfig.TIME_OUT)
        {
            return(ApiHandlerWapper.TryCommonApi(accessToken =>
            {
                var url = string.Format(WxConfig.ApiWorkHost + "/cgi-bin/material/batchget?access_token={0}",
                                        accessToken.AsUrlData());

                var data = new
                {
                    type = type.ToString(),
                    agentid = agentId,
                    offset = offset,
                    count = count,
                };

                return CommonJsonSend.Send <BatchGetMaterialResult>(null, url, data, CommonJsonSendType.POST, timeOut);
            }, accessTokenOrAppKey));
        }
Exemple #20
0
        public static async Task <BatchGetMaterialResult> BatchGetMaterialAsync(string accessTokenOrAppKey, UploadMediaFileType type, int agentId, int offset, int count, int timeOut = Config.TIME_OUT)
        {
            return(await ApiHandlerWapper.TryCommonApiAsync(async accessToken =>
            {
                var url = string.Format(Config.ApiWorkHost + "/cgi-bin/material/batchget?access_token={0}",
                                        accessToken.AsUrlData());

                var data = new
                {
                    type = type.ToString(),
                    agentid = agentId,
                    offset = offset,
                    count = count,
                };

                return await Senparc.Weixin.CommonAPIs.CommonJsonSend.SendAsync <BatchGetMaterialResult>(null, url, data, CommonJsonSendType.POST, timeOut);
            }, accessTokenOrAppKey));
        }
Exemple #21
0
        private MediaList_OthersResult GetMediaList(string accessToken, UploadMediaFileType type, int offset,
                                                    int count, int timeOut = 10000)
        {
            string urlFormat = string.Format("https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token={0}", accessToken.AsUrlData());
            var    data      = new
            {
                type   = type.ToString(),
                offset = offset,
                count  = count
            };

            using (MemoryStream memoryStream = new MemoryStream())
            {
                byte[] bytes = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(data));
                memoryStream.Write(bytes, 0, bytes.Length);
                memoryStream.Seek(0L, SeekOrigin.Begin);
                string returnText = RequestUtility.HttpPost(urlFormat, null, memoryStream, null, null, Encoding.UTF8, null, timeOut);
                return(JsonConvert.DeserializeObject <MediaList_OthersResult>(returnText));
            }
        }
Exemple #22
0
 public static async Task <UploadTemporaryMediaResult> UploadTemporaryMediaAsync(string accessTokenOrAppId, UploadMediaFileType type, string file, int timeOut = Config.TIME_OUT)
 {
     return(await ApiHandlerWapper.TryCommonApiAsync(async accessToken =>
     {
         var url = string.Format(Config.ApiMpHost + "/cgi-bin/media/upload?access_token={0}&type={1}", accessToken.AsUrlData(), type.ToString().AsUrlData());
         var fileDictionary = new Dictionary <string, string>();
         fileDictionary["media"] = file;
         return await CO2NET.HttpUtility.Post.PostFileGetJsonAsync <UploadTemporaryMediaResult>(url, null, fileDictionary, null, null, null, false, timeOut: timeOut).ConfigureAwait(false);
     }, accessTokenOrAppId).ConfigureAwait(false));
 }
Exemple #23
0
        /// <summary>
        /// 上传临时媒体文件
        /// </summary>
        /// <param name="accessToken">调用接口凭证</param>
        /// <param name="type">媒体文件类型,分别有图片(image)、语音(voice)、视频(video),普通文件(file)</param>
        /// <param name="media">form-data中媒体文件标识,有filename、filelength、content-type等信息</param>
        /// <param name="timeOut">代理请求超时时间(毫秒)</param>
        /// <returns></returns>
        public static UploadTemporaryResultJson Upload(string accessToken, UploadMediaFileType type, string media, int timeOut = Config.TIME_OUT)
        {
            var url            = string.Format("https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}", accessToken.AsUrlData(), type.ToString());
            var fileDictionary = new Dictionary <string, string>();

            fileDictionary["media"] = media;
            return(Post.PostFileGetJson <UploadTemporaryResultJson>(url, null, fileDictionary, null, null, null, timeOut));
        }
Exemple #24
0
        /// <summary>
        /// 上传媒体文件
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="type"></param>
        /// <param name="file"></param>
        /// <returns></returns>
        public static UploadResultJson Upload(string accessToken, UploadMediaFileType type, string file)
        {
            string savePath = HttpContext.Current.Server.MapPath(file);
            string dirPath  = HttpContext.Current.Server.MapPath(file.Substring(0, file.LastIndexOf("/") + 1));

            WebResponse response = null;
            Stream      stream   = null;

            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(System.Web.Configuration.WebConfigurationManager.AppSettings["sourceWeb"] + file);
                response = request.GetResponse();
                stream   = response.GetResponseStream();

                byte[] buffer    = new byte[1024];
                Stream outStream = null;
                Stream inStream  = null;
                if (File.Exists(savePath))
                {
                    File.Delete(savePath);
                }

                if (!Directory.Exists(dirPath))
                {
                    DirectoryInfo d = new DirectoryInfo(dirPath);
                    d.Create();
                }
                outStream = System.IO.File.Create(savePath);
                inStream  = response.GetResponseStream();
                int l;
                do
                {
                    l = inStream.Read(buffer, 0, buffer.Length);
                    if (l > 0)
                    {
                        outStream.Write(buffer, 0, l);
                    }
                } while (l > 0);
                if (outStream != null)
                {
                    outStream.Close();
                }
                if (inStream != null)
                {
                    inStream.Close();
                }
            }
            finally
            {
                if (stream != null)
                {
                    stream.Close();
                }
                if (response != null)
                {
                    response.Close();
                }
            }
            var url            = string.Format("http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}", accessToken, type.ToString());
            var fileDictionary = new Dictionary <string, string>();

            fileDictionary["media"] = savePath;
            var result = HTTPPost.PostFileGetJson <UploadResultJson>(url, null, fileDictionary, null);

            if (File.Exists(savePath))
            {
                File.Delete(savePath);
            }
            return(result);
        }
Exemple #25
0
 public static UploadTemporaryMediaResult UploadTemporaryMedia(string AppId, string AppSecret, UploadMediaFileType type, Stream file, string strFilename, int timeOut = Config.TIME_OUT)
 {
     return(ApiHandlerWapper.TryCommonApi(accessToken =>
     {
         var url = string.Format("http://api.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}", accessToken.AsUrlData(), type.ToString().AsUrlData());
         var fileDictionary = new Dictionary <string, Stream>();
         fileDictionary[string.IsNullOrEmpty(strFilename) ? "media" : strFilename] = file;
         return Post.PostFileGetJson <UploadTemporaryMediaResult>(url, null, fileDictionary, null, timeOut: timeOut);
     }, AppId, AppSecret));
 }
Exemple #26
0
        /// <summary>
        /// 新增临时素材(原上传媒体文件)
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="type"></param>
        /// <param name="file"></param>
        /// <param name="timeOut">代理请求超时时间(毫秒)</param>
        /// <returns></returns>
        public static UploadTemporaryMediaResult UploadTemporaryMedia(string accessToken, UploadMediaFileType type, string file, int timeOut = Config.TIME_OUT)
        {
            var url            = string.Format("http://api.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}", accessToken, type.ToString());
            var fileDictionary = new Dictionary <string, string>();

            fileDictionary["media"] = file;
            var result = HTTPPost.PostFileGetJson <UploadTemporaryMediaResult>(url, null, fileDictionary, null);

            return(result);
        }
Exemple #27
0
        /*      媒體資源下載和管理        */

        /// <summary>
        /// 保存多媒体资源
        /// </summary>
        /// <param name="openId">用户的OpenId</param>
        /// <param name="MediaId">媒体的MediaId</param>
        /// <param name="localId">成为本地资源之后的本地Id</param>
        /// <param name="type">多媒体的类型</param>
        /// <returns></returns>
        public virtual ResultM SaveMediaResource(string openId, string MediaId, UploadMediaFileType Type)
        {
            //结果容器
            ResultM result  = new ResultM();
            int     localId = -1;

            //通过“本地资源”模块,下载资源并获得LocalId
            switch (Type)
            {
            default:
                throw new Exception("目前不支持此类型。" + Type.ToString());

            case UploadMediaFileType.thumb:
            case UploadMediaFileType.image:
            {
                WeChatPictureService service = new WeChatPictureService("QY");
                localId = service.DownLoadResources(MediaId);
                EGExceptionResult pResult = service.GetActionResult();
                if (pResult != null)
                {
                    result.Message = pResult.Message;
                }
            }
            break;

            //case UploadMediaFileType.video:     //视频类型,微信文档写着不支持下载
            //break;

            case UploadMediaFileType.voice:
            {
                WeChatVoiceService service = new WeChatVoiceService("QY");
                localId = service.DownLoadResources(MediaId);
                EGExceptionResult pResult = service.GetActionResult();
                if (pResult != null)
                {
                    result.Message = pResult.Message;
                }
            }
            break;
            }

            //记录到数据库
            if (localId >= 0)
            {
                var affectedRows =
                    MediaDA.SaveMediaResource(new WCR_Media_Resource
                {
                    OpenId      = openId,
                    ID          = MediaId,
                    LocalID     = localId,
                    Type        = (int)Type,
                    Date        = DateTime.Now.Date,
                    CreatedTime = DateTime.Now,
                });

                result.Affected = affectedRows;
            }

            //返回结果
            return(result);
        }
Exemple #28
0
 /// <summary>
 /// 【异步方法】新增临时素材(原上传媒体文件)
 /// </summary>
 /// <param name="accessTokenOrAppId"></param>
 /// <param name="type"></param>
 /// <param name="file"></param>
 /// <param name="timeOut">代理请求超时时间(毫秒)</param>
 /// <returns></returns>
 public static async Task <UploadTemporaryMediaResult> UploadTemporaryMediaAsync(string accessTokenOrAppId, UploadMediaFileType type, string file, int timeOut = Config.TIME_OUT)
 {
     return(await ApiHandlerWapper.TryCommonApiAsync(accessToken =>
     {
         var url = string.Format("https://api.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}", accessToken.AsUrlData(), type.ToString().AsUrlData());
         var fileDictionary = new Dictionary <string, string>();
         fileDictionary["media"] = file;
         return Post.PostFileGetJsonAsync <UploadTemporaryMediaResult>(url, null, fileDictionary, null, null, null, timeOut);
     }, accessTokenOrAppId));
 }
Exemple #29
0
        /// <summary>
        /// 上传永久素材-除了图文
        /// </summary>
        /// <param name="appId"></param>
        /// <param name="stream"></param>
        /// <param name="mediaType"></param>
        /// <param name="inArticle"></param>
        /// <param name="fileName"></param>
        /// <param name="contentType"></param>
        /// <returns></returns>
        public async Task <UploadForeverMediaResult> UploadForeverMediaAsync(string access_token, Stream stream,
                                                                             UploadMediaFileType mediaType, string fileName = null, string contentType = null)
        {
            string url = $"https://api.weixin.qq.com/cgi-bin/material/add_material?access_token={access_token}&type={mediaType.ToString()}";

            var fileList = new List <FormData>();

            fileList.Add(new FormData("type", "image"));

            if (stream != null)
            {
                fileList.Add(new FormData
                {
                    Name        = "media",
                    IsFile      = true,
                    FileName    = fileName,
                    Stream      = stream,
                    ContentType = contentType
                });
            }

            var wxRet = await _httpSender.UploadFileAsync <UploadForeverMediaResult>(url, null, fileList);

            return(wxRet);
        }
        /// <summary>
        /// 上传媒体文件
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="type"></param>
        /// <param name="file"></param>
        /// <returns></returns>
        public static UploadResultJson Upload(string accessToken, UploadMediaFileType type, string file)
        {

            string savePath = HttpContext.Current.Server.MapPath(file);
            string dirPath = HttpContext.Current.Server.MapPath(file.Substring(0, file.LastIndexOf("/") + 1));

            WebResponse response = null;
            Stream stream = null;
            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(System.Web.Configuration.WebConfigurationManager.AppSettings["sourceWeb"] + file);
                response = request.GetResponse();
                stream = response.GetResponseStream();

                byte[] buffer = new byte[1024];
                Stream outStream = null;
                Stream inStream = null;
                if (File.Exists(savePath)) File.Delete(savePath);

                if (!Directory.Exists(dirPath))
                {
                    DirectoryInfo d = new DirectoryInfo(dirPath);
                    d.Create();
                }
                outStream = System.IO.File.Create(savePath);
                inStream = response.GetResponseStream();
                int l;
                do
                {
                    l = inStream.Read(buffer, 0, buffer.Length);
                    if (l > 0) outStream.Write(buffer, 0, l);
                } while (l > 0);
                if (outStream != null) outStream.Close();
                if (inStream != null) inStream.Close();
            }
            finally
            {
                if (stream != null) stream.Close();
                if (response != null) response.Close();
            }
            var url = string.Format("http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}", accessToken, type.ToString());
            var fileDictionary = new Dictionary<string, string>();
            fileDictionary["media"] = savePath;
            var result = HTTPPost.PostFileGetJson<UploadResultJson>(url, null, fileDictionary, null);
            if (File.Exists(savePath))
            {
                File.Delete(savePath);
            }
            return result;
        }
Exemple #31
0
        /// <summary>
        /// 获取图片、视频、语音素材列表
        /// </summary>
        /// <param name="accessTokenOrAppId"></param>
        /// <param name="type">素材的类型,图片(image)、视频(video)、语音 (voice)</param>
        /// <param name="offset"></param>
        /// <param name="count"></param>
        /// <param name="timeOut"></param>
        /// <returns></returns>
        public static MediaList_OthersResult GetOthersMediaList(string accessTokenOrAppId, UploadMediaFileType type, int offset,
            int count, int timeOut = Config.TIME_OUT)
        {
            return ApiHandlerWapper.TryCommonApi(accessToken =>
            {
                string url = string.Format("https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token={0}", accessToken.AsUrlData());

                var date = new
                {
                    type = type.ToString(),
                    offset = offset,
                    count = count
                };

                return CommonJsonSend.Send<MediaList_OthersResult>(null, url, date, CommonJsonSendType.POST, timeOut);

            }, accessTokenOrAppId);
        }
Exemple #32
0
        /// <summary>
        /// 上传永久素材(图片、语音、视频、和缩略图)
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="type"></param>
        /// <param name="file"></param>
        /// <returns></returns>
        public static UploadResultJson UploadLongMedia(string accessToken, UploadMediaFileType type, string file, string title = "", string introduction = "")
        {
            string urlFormat      = "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token={0}&type={1}";
            var    fileDictionary = new Dictionary <string, string>();

            fileDictionary["media"] = file;
            if (type == UploadMediaFileType.video)
            {
                fileDictionary["description"] = new SerializerHelper().GetJsonString(new { title = title, introduction = introduction }); //"{\"title\":\"\", \"introduction\":\"永久素材描述\"}";
            }

            return(ApiHelper.Upload <UploadResultJson>(accessToken, urlFormat, fileDictionary, type.ToString()));
        }
Exemple #33
0
 /// <summary>
 /// 新增临时素材(原上传媒体文件)
 /// </summary>
 /// <param name="accessTokenOrAppId"></param>
 /// <param name="type"></param>
 /// <param name="file"></param>
 /// <param name="timeOut">代理请求超时时间(毫秒)</param>
 /// <returns></returns>
 public static UploadTemporaryMediaResult UploadTemporaryMedia(string accessTokenOrAppId, UploadMediaFileType type, string file, int timeOut = Config.TIME_OUT)
 {
     return(ApiHandlerWapper.TryCommonApi(accessToken =>
     {
         var url = string.Format("http://api.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}", accessToken, type.ToString());
         var fileDictionary = new Dictionary <string, string>();
         fileDictionary["media"] = file;
         return HttpUtility.Post.PostFileGetJson <UploadTemporaryMediaResult>(url, null, fileDictionary, null, timeOut: timeOut);
     }, accessTokenOrAppId));
 }
Exemple #34
0
        /// <summary>
        /// 获取素材列表
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="type"></param>
        /// <param name="agentId"></param>
        /// <param name="offset"></param>
        /// <param name="count"></param>
        /// <param name="timeOut"></param>
        /// <returns></returns>
        public static BatchGetMaterialResult BatchGetMaterial(string accessToken, UploadMediaFileType type, int agentId, int offset, int count, int timeOut = Config.TIME_OUT)
        {
            var url = string.Format("https://qyapi.weixin.qq.com/cgi-bin/material/batchget?access_token={0}",
                accessToken.AsUrlData());

            var data = new
            {
                type = type.ToString(),
                agentid = agentId,
                offset = offset,
                count = count,
            };

            return CommonJsonSend.Send<BatchGetMaterialResult>(null, url, data, CommonJsonSendType.POST, timeOut);
        }
Exemple #35
0
 /// <summary>
 /// 【异步方法】上传临时媒体文件【QY移植修改】
 /// </summary>
 /// <param name="accessTokenOrAppKey">调用接口凭证(AccessToken)或AppKey(根据AccessTokenContainer.BuildingKey(corpId, corpSecret)方法获得)</param>
 /// <param name="type">媒体文件类型,分别有图片(image)、语音(voice)、视频(video),普通文件(file)</param>
 /// <param name="media">form-data中媒体文件标识,有filename、filelength、content-type等信息</param>
 /// <param name="timeOut">代理请求超时时间(毫秒)</param>
 /// <returns></returns>
 public static async Task <UploadTemporaryResultJson> UploadAsync(string accessTokenOrAppKey, UploadMediaFileType type, string media, int timeOut = Config.TIME_OUT)
 {
     return(await ApiHandlerWapper.TryCommonApiAsync(async accessToken =>
     {
         var url = string.Format(Config.ApiWorkHost + "/cgi-bin/media/upload?access_token={0}&type={1}", accessToken.AsUrlData(), type.ToString());
         var fileDictionary = new Dictionary <string, string>();
         fileDictionary["media"] = media;
         return await Post.PostFileGetJsonAsync <UploadTemporaryResultJson>(CommonDI.CommonSP, url, null, fileDictionary, null, null, null, false, null, timeOut).ConfigureAwait(false);
     }, accessTokenOrAppKey).ConfigureAwait(false));
 }
Exemple #36
0
        /// <summary>
        /// 新增临时素材(原上传媒体文件)
        /// </summary>
        /// <param name="type"></param>
        /// <param name="file"></param>
        /// <param name="timeOut">代理请求超时时间(毫秒)</param>
        /// <returns></returns>
        public UploadTemporaryMediaResult UploadTemporaryMedia(UploadMediaFileType type, string file, int timeOut = Config.TIME_OUT)
        {
            var accessToken = _api.GetAccessToken();
            var url         = string.Format("http://api.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}", accessToken, type.ToString());

            return(PostFile <UploadTemporaryMediaResult>(url, file, timeOut));
        }
Exemple #37
0
        /// <summary>
        /// 上传媒体文件
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="type"></param>
        /// <param name="file"></param>
        /// <returns></returns>
        public static UploadResultJson Upload(string accessToken, UploadMediaFileType type, string file)
        {
            var url            = string.Format("http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}", accessToken, type.ToString());
            var fileDictionary = new Dictionary <string, string>();

            fileDictionary["media"] = file;
            return(HttpUtility.Post.PostFileGetJson <UploadResultJson>(url, null, fileDictionary, null));
        }
Exemple #38
0
 /// <summary>
 /// 新增临时素材(原上传媒体文件)
 /// </summary>
 /// <param name="accessTokenOrAppId">AccessToken或AppId(推荐使用AppId,需要先注册)</param>
 /// <param name="type">媒体文件类型</param>
 /// <param name="file">上传文件的绝对路径</param>
 /// <param name="timeOut">代理请求超时时间(毫秒)</param>
 /// <returns></returns>
 public static UploadTemporaryMediaResult UploadTemporaryMedia(string accessTokenOrAppId, UploadMediaFileType type, string file, int timeOut = Config.TIME_OUT)
 {
     return(ApiHandlerWapper.TryCommonApi(accessToken =>
     {
         var url = string.Format(Config.ApiMpHost + "/cgi-bin/media/upload?access_token={0}&type={1}", accessToken.AsUrlData(), type.ToString().AsUrlData());
         var fileDictionary = new Dictionary <string, string>();
         fileDictionary["media"] = file;
         return CO2NET.HttpUtility.Post.PostFileGetJson <UploadTemporaryMediaResult>(CommonDI.CommonSP, url, null, fileDictionary, null, timeOut: timeOut);
     }, accessTokenOrAppId));
 }
Exemple #39
0
 public static UploadTemporaryResultJson Upload(string accessTokenOrAppKey, UploadMediaFileType type, string media, int timeOut = Config.TIME_OUT)
 {
     return(ApiHandlerWapper.TryCommonApi(accessToken =>
     {
         var url = string.Format(Config.ApiWorkHost + "/cgi-bin/media/upload?access_token={0}&type={1}", accessToken.AsUrlData(), type.ToString());
         var fileDictionary = new Dictionary <string, string>();
         fileDictionary["media"] = media;
         return CO2NET.HttpUtility.Post.PostFileGetJson <UploadTemporaryResultJson>(url, null, fileDictionary, null, null, null, false, timeOut: timeOut);
     }, accessTokenOrAppKey));
 }
Exemple #40
0
        /// <summary>
        /// 上传临时素材(图片、语音、视频、和缩略图)
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="type">上传文件类型</param>
        /// <param name="file">上传文件物理路径</param>
        /// <returns></returns>
        public static UploadResultJson Upload(string accessToken, UploadMediaFileType type, string file)
        {
            //微信公众号上传媒体文件接口地址
            //var urlFormat = "http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}";
            string urlFormat      = "https://api.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}";
            var    fileDictionary = new Dictionary <string, string>();

            fileDictionary["media"] = file;
            return(ApiHelper.Upload <UploadResultJson>(accessToken, urlFormat, fileDictionary, type.ToString()));
        }