/// <summary> /// 媒体库文件下载 /// </summary> public void FileDownLoads() { Int32 SliderID = WebHelper.GetIntParam(Request, "SliderID", 0); Int32 LayerID = WebHelper.GetIntParam(Request, "LayerID", 0); String SettingName = WebHelper.GetStringParam(Request, "SettingName", ""); if (!String.IsNullOrEmpty(SettingName)) { String SettingValue = String.Empty; DNNGo_DNNGalleryProGame_Slider SliderItem = new DNNGo_DNNGalleryProGame_Slider(); if (LayerID > 0) { DNNGo_DNNGalleryProGame_Layer LayerItem = DNNGo_DNNGalleryProGame_Layer.FindByKeyForEdit(LayerID); if (LayerItem != null && LayerItem.ID > 0) { SliderItem = DNNGo_DNNGalleryProGame_Slider.FindByKeyForEdit(SliderID); if (SliderItem != null && SliderItem.ID > 0) { //背景下载技术 SliderItem.Clicks += 1; SliderItem.Update(); } //层下载技术 LayerItem.Clicks += 1; LayerItem.Update(); //取出层中的下载链接 SettingValue = ViewLayerSettingT <String>(LayerItem, SettingName, ""); } else { //没有找到文件记录 } } else if (SliderID > 0) { SliderItem = DNNGo_DNNGalleryProGame_Slider.FindByKeyForEdit(SliderID); if (SliderItem != null && SliderItem.ID > 0) { SliderItem.Clicks += 1; SliderItem.Update(); //取出背景中的下载链接 SettingValue = ViewSliderSettingT <String>(SliderItem, SettingName, ""); } } if (!String.IsNullOrEmpty(SettingValue)) { String DownLoadUrl = HttpUtility.UrlDecode(ViewLinkUrl(SettingValue, false)); if (!String.IsNullOrEmpty(DownLoadUrl)) { //记录下载信息到日志表里面***暂时忽略 if (SettingValue.IndexOf("MediaID=", StringComparison.CurrentCultureIgnoreCase) == 0) { String ServerPath = MapPath(DownLoadUrl); if (false) { FileSystemUtils.DownloadFile(ServerPath, Path.GetFileName(ServerPath));//下载媒体库中的文件 } else { Response.Redirect(DownLoadUrl); } } else { Response.Redirect(DownLoadUrl);//除了媒体库中的文件,其他一律跳转 } } else { //下载链接不存在 } } else { //没有取到下载链接 } } else { //没有找到文件参数 } }
public Int32 SynchronizeAllFiles(System.IO.FileInfo SynchronizeFile) { Int32 SynchronizeFileCount = 0; DNNGo_DNNGalleryProGame_Files PhotoItem = new DNNGo_DNNGalleryProGame_Files(); PhotoItem.ModuleId = ModuleId; PhotoItem.PortalId = PortalId; PhotoItem.FileName = SynchronizeFile.Name; PhotoItem.FileSize = Convert.ToInt32(SynchronizeFile.Length / 1024); PhotoItem.FileMate = new FileManager().GetContentType(Path.GetExtension(PhotoItem.FileName).Replace(".", "")); PhotoItem.FileExtension = System.IO.Path.GetExtension(PhotoItem.FileName).Replace(".", ""); PhotoItem.Name = System.IO.Path.GetFileName(PhotoItem.FileName).Replace(Path.GetExtension(PhotoItem.FileName), ""); PhotoItem.Status = (Int32)EnumFileStatus.Approved; try { if (("png,gif,jpg,jpeg,bmp").IndexOf(PhotoItem.FileExtension) >= 0) { //图片的流 System.Drawing.Image image = System.Drawing.Image.FromFile(SynchronizeFile.FullName); PhotoItem.ImageWidth = image.Width; PhotoItem.ImageHeight = image.Height; PhotoItem.Exif = Common.Serialize <EXIFMetaData.Metadata>(new EXIFMetaData().GetEXIFMetaData(image)); } } catch { } PhotoItem.LastTime = xUserTime.UtcTime(); PhotoItem.LastIP = WebHelper.UserHost; PhotoItem.LastUser = UserInfo.UserID; //将文件存储的路径整理好 String fileName = FileSystemUtils.HandleFileName(PhotoItem.Name); //文件名称 String WebPath = String.Format("DNNGalleryProGame/uploads/{0}/{1}/{2}/", PhotoItem.LastTime.Year, PhotoItem.LastTime.Month, PhotoItem.LastTime.Day); //检测文件存储路径是否有相关的文件 System.IO.FileInfo fInfo = new System.IO.FileInfo(HttpContext.Current.Server.MapPath(String.Format("{0}{1}{2}.{3}", PortalSettings.HomeDirectory, WebPath, fileName, PhotoItem.FileExtension))); //检测文件夹是否存在 if (!System.IO.Directory.Exists(fInfo.Directory.FullName)) { System.IO.Directory.CreateDirectory(fInfo.Directory.FullName); } else { Int32 j = 1; while (fInfo.Exists) { //文件已经存在了 fileName = String.Format("{0}_{1}", FileSystemUtils.HandleFileName(PhotoItem.Name), j); fInfo = new System.IO.FileInfo(HttpContext.Current.Server.MapPath(String.Format("{0}{1}{2}.{3}", PortalSettings.HomeDirectory, WebPath, fileName, PhotoItem.FileExtension))); j++; } } PhotoItem.FilePath = String.Format("{0}{1}.{2}", WebPath, fileName, PhotoItem.FileExtension); PhotoItem.FileName = String.Format("{0}.{1}", fileName, PhotoItem.FileExtension); try { if (!fInfo.Directory.Exists) { fInfo.Directory.Create(); } //异步移动文件到文件夹中 List <String> SynchronizeFileQueue = new List <string>(); SynchronizeFileQueue.Add(SynchronizeFile.FullName); SynchronizeFileQueue.Add(fInfo.FullName); ManagedThreadPool.QueueUserWorkItem(new WaitCallback(ThreadMoveTo), SynchronizeFileQueue); } catch (Exception ex) { } //给上传的相片设置初始的顺序 QueryParam qp = new QueryParam(); qp.ReturnFields = qp.Orderfld = DNNGo_DNNGalleryProGame_Files._.Sort; qp.OrderType = 1; qp.Where.Add(new SearchParam(DNNGo_DNNGalleryProGame_Files._.PortalId, PhotoItem.PortalId, SearchType.Equal)); PhotoItem.Sort = Convert.ToInt32(DNNGo_DNNGalleryProGame_Files.FindScalar(qp)) + 2; Int32 PhotoId = PhotoItem.Insert(); if (PhotoId > 0) { SynchronizeFileCount++; } return(SynchronizeFileCount); }