public JsonResult GetExternalWare(string name, int categoryId, int pageSize = 20, int pageIndex = 1, string selected = "") { var externalwareurl = string.Format(Server.UrlDecode(ConfigurationManager.AppSettings["WareServerExternalWareUrl"]), name, categoryId, pageIndex, pageSize, CurrentTenant.ExternalWareTenantId); var response = ExternalWareHelper.CreateGetHttpResponse(externalwareurl, null); if (response != null) { var message = ExternalWareHelper.GetResponseString(response); var data = Newtonsoft.Json.JsonConvert.DeserializeObject <ResultData>(message); if (data.RecordCount == 0) { return(Json(new { dataList = new object[] { }, recordCount = 0 }, JsonRequestBehavior.AllowGet)); } int[] ids = selected.GetArray(); var dataList = data.DataList.Select(p => new { WareId = p["Id"], WareName = p["Filename"], Type = p["FileType"], TypeDesc = p["FileType"] == "0" ? CourseLanguage.StandardWare : (p["FileType"] == "1" ? CourseLanguage.NormalWare : CourseLanguage.VideoWare), IsSelected = ids.Any(i => i.ToString() == p["Id"]) ? 1 : 0 }); return(Json(new { dataList, recordCount = data.RecordCount }, JsonRequestBehavior.AllowGet)); } else { return(Json(new { dataList = new object[] { }, recordCount = 0 }, JsonRequestBehavior.AllowGet)); } }
/// <summary> /// 获取上传的文件,返回list集合 /// </summary> /// <param name="type">0:图片,1:音频,2:视频</param> /// <returns></returns> public List <FileUpload> FileUpload(int type) { var flv = new List <string> { ".mp4", ".rmvb", ".wmv", ".flv" }; var listfileUpload = new List <FileUpload>(); var tUrl = System.Configuration.ConfigurationManager.AppSettings["TenantwareServerBaseUrl"]; //var tUrl = "http://192.168.100.65:8261/"; HttpFileCollectionBase files = Request.Files; for (int i = 0; i < files.Count; i++) { var fileUpload = new FileUpload(); string fileName = Path.GetFileName(files[i].FileName); string fileExten = Path.GetExtension(fileName); //扩展名 if (type != 2 || (type == 2 && flv.Contains(fileExten.ToLower()))) { string oldName = ""; if (type == 2) { string uploadUrl = string.Format(Server.UrlDecode(ConfigurationManager.AppSettings["WareServerUploadWareUrl"]), fileName, "2", CurrentTenant.TenantName); var responstr = ExternalWareHelper.GetResponseString(ExternalWareHelper.Upload_Request(uploadUrl, files[i].InputStream, fileName)); var data = Newtonsoft.Json.JsonConvert.DeserializeObject <dynamic>(responstr); if (data.RecordCount == 1) { string converturl = data.DataList["convertfileurl"]; if (!string.IsNullOrWhiteSpace(converturl)) { oldName = tUrl + converturl.Replace("\\", "/") + ".mp4"; } //fileUpload.FileName = tUrl + "FS/ConvertFileUrl?Id=" + data.DataList["Id"]; } } else { oldName = SaveFile(files[i], "~/UploadFiles/ExamQuestionResource/"); } //保存的文件名,防止名称冲突 fileUpload.FileType = type; fileUpload.RealName = fileName; fileUpload.FileName = oldName; listfileUpload.Add(fileUpload); } } return(listfileUpload); }
/// <summary> /// 上传文件,通过HttpRequest中的Files /// </summary> /// <param name="file"></param> /// <param name="dir">相对路径</param> /// <param name="extendName">扩展名</param> /// <param name="externalId">外部租户ID</param> /// <returns></returns> public string Upload(System.Web.HttpPostedFileBase file, string dir, string extendName, int externalId) { var uploadUrl = string.Format(FileStoreHost.FileStoreWareUploadUrl, file.FileName, "-1", externalId); var responstr = ExternalWareHelper.GetResponseString(ExternalWareHelper.Upload_Request(uploadUrl, file.InputStream, file.FileName)); string fileUrl = string.Empty; var data = Newtonsoft.Json.JsonConvert.DeserializeObject <dynamic>(responstr); if (data.RecordCount == 1) { string converturl = data.DataList["convertfileurl"]; if (!string.IsNullOrWhiteSpace(converturl)) { fileUrl = FileStoreHost.FileStoreUrl + converturl.Replace("\\", "/"); } } return(fileUrl); }
/// <summary> /// Gets the external ware. /// </summary> /// <returns>The external ware.</returns> /// <param name="id">Identifier.</param> public ResCourseWare GetExternalWare(int id) { var response = ExternalWareHelper.CreateGetHttpResponse(ExternalWareHelper.localWareServerBaseUrl + "FS/FileGet?Id=" + id, null); if (response == null) { return(null); } var str = ExternalWareHelper.GetResponseString(response); var data = Newtonsoft.Json.JsonConvert.DeserializeObject <ResultData>(str); if (data.RecordCount == 0) { return(null); } return(parseWare(data.DataList[0])); }
/// <summary> /// 上传文件,通过HttpRequest中的Files /// </summary> /// <param name="data"></param> /// <param name="dir">相对路径</param> /// <param name="extendName">扩展名</param> /// <param name="externalId">外部租户ID</param> /// <returns></returns> public string Upload(byte[] data, string dir, string extendName, int externalId) { var fileName = Guid.NewGuid().ToString("N") + "." + extendName; Stream stream = new MemoryStream(data); var uploadUrl = string.Format(FileStoreHost.FileStoreWareUploadUrl, fileName, "-1", externalId); var responstr = ExternalWareHelper.GetResponseString(ExternalWareHelper.Upload_Request(uploadUrl, stream, fileName)); string fileUrl = string.Empty; var dataResponse = Newtonsoft.Json.JsonConvert.DeserializeObject <dynamic>(responstr); if (dataResponse.RecordCount == 1) { string converturl = dataResponse.DataList["convertfileurl"]; if (!string.IsNullOrWhiteSpace(converturl)) { fileUrl = FileStoreHost.FileStoreUrl + converturl.Replace("\\", "/"); } } return(fileUrl); }
private List <ResCourseWare> GetExternalWareList(IEnumerable <int> wareIds) { if (!wareIds.Any()) { return(new List <ResCourseWare>()); } var param = new Dictionary <string, string>(); param["Ids"] = wareIds.GetString(); var response = ExternalWareHelper.CreatePostHttpResponse(ExternalWareHelper.localWareServerBaseUrl + "FS/FileListGet", param, null); var wares = new List <ResCourseWare>(); if (response == null) { return(wares); } var str = ExternalWareHelper.GetResponseString(response); var data = Newtonsoft.Json.JsonConvert.DeserializeObject <ResultData>(str); if (data.RecordCount == 0) { return(wares); } if (data.DataList != null && data.DataList.Any()) { foreach (var item in data.DataList) { if (item["IsConvert"] != "1") { continue; } wares.Add(parseWare(item)); } } return(wares); }
/// <summary> /// 获取内部课件但课件存在外地的那些课件 /// 【用于移动端播放】 /// </summary> /// <param name="wareIds"></param> /// <returns></returns> public List <ResCourseWare> GetInternalWareExternal(IEnumerable <int> wareIds) { try { if (!wareIds.Any()) { return(new List <ResCourseWare>()); } var param = new Dictionary <string, string>(); param["Ids"] = wareIds.GetString(); var response = ExternalWareHelper.CreatePostHttpResponse(ExternalWareHelper.tenantwareServerBaseUrl + "FS/FileListGet", param, null); var wares = new List <ResCourseWare>(); if (response == null) { return(wares); } var str = ExternalWareHelper.GetResponseString(response); var data = Newtonsoft.Json.JsonConvert.DeserializeObject <ResultData>(str); if (data.RecordCount == 0 || data.DataList.Count == 0) { return(wares); } foreach (var item in data.DataList) { if (item["IsConvert"] != "1") { continue; } var ware = new ResCourseWare(); int type = int.Parse(item["FileType"]); ware.WareId = int.Parse(item["Id"]); var hasUrl = false; if (item.ContainsKey("Url")) { var str1 = Newtonsoft.Json.JsonConvert.SerializeObject(item["Url"] as object); var urls = Newtonsoft.Json.JsonConvert.DeserializeObject <List <Dictionary <string, string> > >(str1); if (urls.Any()) { hasUrl = true; } } if (hasUrl) { var random = new Random(); var str1 = Newtonsoft.Json.JsonConvert.SerializeObject(item["Url"] as object); var urls = Newtonsoft.Json.JsonConvert.DeserializeObject <List <Dictionary <string, string> > >(str1); //var urls = item["Url"] as List<Dictionary<string, string>>; var curls = urls.FindAll(p => !string.IsNullOrEmpty(p["ConvertFileUrl"])); if (curls.Count > 0) { ware.Path = curls[random.Next(0, curls.Count - 1)]["ConvertFileUrl"]; if (type == 0) { ware.Path = ware.Path.Substring(0, ware.Path.IndexOf("data")); } if (type == 1) { //ware.Path = ExternalWareHelper.tenantwareServerBaseUrl + item["FilePath"].Replace("\\", "/"); ware.Path = urls[0]["FileUrl"]; } } var packids = urls.FindAll(p => !string.IsNullOrEmpty(p["PackId"]) && p["PackId"] != "0"); if (packids.Count > 0) { ware.PackId = packids[random.Next(0, packids.Count - 1)]["PackId"]; } } else { if (string.IsNullOrEmpty(ware.Path)) { ware.Path = ExternalWareHelper.tenantwareServerBaseUrl + item["ConvertFilePath"].Replace("\\", "/"); if (type == 0) { ware.Path = ware.Path.Substring(0, ware.Path.IndexOf("data")); } } if (string.IsNullOrEmpty(ware.PackId) && type == 0) { string PakcId = "0"; if (!string.IsNullOrEmpty(item["OtherInformation"])) { var OtherInformation = Newtonsoft.Json.JsonConvert.DeserializeObject <dynamic>(item["OtherInformation"]); PakcId = OtherInformation.packID; } ware.PackId = PakcId; } } wares.Add(ware); } return(wares); } catch (Exception ex) { throw ex; } }