/// <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); }
/// <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()); }
/// <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); }
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; }
/// <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); }
/// <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; }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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; })); }
/// <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)); }
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)); }
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)); }
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)); }
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)); }
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)); } }
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)); }
/// <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)); }
/// <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); }
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)); }
/// <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); }
/* 媒體資源下載和管理 */ /// <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); }
/// <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)); }
/// <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; }
/// <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); }
/// <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())); }
/// <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)); }
/// <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); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
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)); }
/// <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())); }