/// <summary> /// 检查图片 /// </summary> /// <param name="entity"></param> private void CheckJPGType(ProductResourcesVM entity) { //if (entity.Thumbnail.PixelWidth == 1280 && entity.Thumbnail.PixelHeight == 1024) //{ // if (entity.ImageSize > 3 * StaticConfiguration.MBLimits) // { // entity.Remark = "分辨率为1280*1024的图片体积应不大于3兆。"; // entity.FileUploadProcessStates = FileUploadProcessStates.CheckFailed; // } //} //else if (entity.Thumbnail.PixelWidth == 800 && entity.Thumbnail.PixelHeight == 600) //{ // if (entity.ImageSize > 2 * StaticConfiguration.MBLimits) // { // entity.Remark = "分辨率为800*600的图片体积应不大于2兆。"; // entity.FileUploadProcessStates = FileUploadProcessStates.CheckFailed; // } //} //else if (entity.Thumbnail.PixelWidth == 640 && entity.Thumbnail.PixelHeight == 480) //{ // if (entity.ImageSize > 2 * StaticConfiguration.MBLimits) // { // entity.Remark = "分辨率为640*480的图片体积应不大于2兆。"; // entity.FileUploadProcessStates = FileUploadProcessStates.CheckFailed; // } //} //else //{ // entity.Remark = "请选择分辨率为1280*1024/800*600/640*480的图片。"; // entity.FileUploadProcessStates = FileUploadProcessStates.CheckFailed; //} }
/// <summary> /// 获取文件实体 /// </summary> /// <param name="fileInfo"></param> /// <param name="entity"></param> private void CheckFileEntity(FileInfo fileInfo, ProductResourcesVM entity) { if (entity == null) { entity = new ProductResourcesVM(); } var message = ""; var commonSKUNumber = CheckFileName(fileInfo.Name, ref message); if (string.IsNullOrWhiteSpace(commonSKUNumber)) { entity.FileUploadProcessStates = FileUploadProcessStates.CheckFailed; entity.Remark = message; entity.PreviewImageVisibility = Visibility.Collapsed; entity.FileType = ResourcesType.NotSupported; return; } //if (_productResources != null // && !string.IsNullOrWhiteSpace(_productResources.CommonSKUNumber) // && _productResources.CommonSKUNumber != commonSKUNumber) //{ // entity.Remark = "资源文件" + fileInfo.Name + "不在此商品下!"; // entity.FileUploadProcessStates = FileUploadProcessStates.CheckFailed; // entity.PreviewImageVisibility = Visibility.Collapsed; // //entity.FileType = ResourcesType.NotSupported; // return; //} entity.CommonSKUNumber = commonSKUNumber; }
/// <summary> /// 检查360图片 /// </summary> /// <param name="entity"></param> private void CheckSWFType(ProductResourcesVM entity) { entity.Thumbnail = LoadImage(@"/ECCentral.Portal.UI.IM;Component/Resources/360p.png"); if (entity.ImageSize > 5 * StaticConfiguration.MBLimits) { entity.Remark = "360图片体积应不大于5兆。"; entity.FileUploadProcessStates = FileUploadProcessStates.CheckFailed; } }
private ProductResourcesVM GetProductResourcesVM(FileInfo fileInfo) { if (fileInfo == null) { return(new ProductResourcesVM()); } var source = new ProductResourcesVM { FileGuid = Guid.NewGuid(), File = fileInfo }; GetFileEntity(fileInfo, source); source.ProductCommonInfoSysNo = _productResources.ProductCommonInfoSysNo; if (source.FileUploadProcessStates != FileUploadProcessStates.CheckFailed) { CheckFileEntity(fileInfo, source); } return(source); }
private ProductResourceForNewegg GetProductResource(ProductResourcesVM entity) { if (entity == null) { return(null); } var resource = new ProductResourceForNewegg { Resource = new ResourceForNewegg() }; resource.ProductCommonInfoSysNo = entity.ProductCommonInfoSysNo; resource.Resource.TemporaryName = entity.FileIdentity; resource.Resource.Type = entity.FileType; resource.LanguageCode = CPApplication.Current.LanguageCode; resource.CompanyCode = CPApplication.Current.CompanyCode; resource.Resource.OperateUser = new UserInfo { SysNo = CPApplication.Current.LoginUser.userSysNo, UserDisplayName = CPApplication.Current.LoginUser.DisplayName }; return(resource); }
/// <summary> /// 上传 /// </summary> /// <param name="entity"></param> /// <param name="productResources"></param> /// <param name="count"></param> private void UpLoad(ProductResourcesVM entity, List <ProductResourceForNewegg> productResources, int count) { if (productResources == null) { productResources = new List <ProductResourceForNewegg>(); } if (entity.FileUploadProcessStates != FileUploadProcessStates.WaitingToUpload) { entity.FileIdentity = "-1"; return; } var client = new FileUploadClient(ConstValue.DomainName_IM, entity.File, 1); //if (entity.FileType == ResourcesType.Image) //{ // client.AppName = "product"; //} //if (entity.FileType == ResourcesType.Image360) //{ // client.AppName = "ProductImage360"; //} //if (entity.FileType == ResourcesType.Video) //{ // client.AppName = "ProductVideo"; //} client.AppName = "product"; entity.FileUploadProcessStates = FileUploadProcessStates.Uploading; client.UploadProgressChanged += (se, args) => { long t = args.TotalUploadedDataLength; // 已经上传的数据大小 entity.UploadedPercentage = (float)t / entity.ImageSize; // 上传数据的百分比 }; client.UploadErrorOccured += (se, args) => { entity.FileUploadProcessStates = FileUploadProcessStates.UploadFailed; entity.Remark = args.Exception.Message; CPApplication.Current.CurrentPage.Context.Window.Alert(args.Exception.Message); entity.FileIdentity = "-1"; }; client.UploadCompleted += (se, args) => { entity.FileUploadProcessStates = FileUploadProcessStates.Uploaded; entity.Remark = ""; entity.FileIdentity = args.FileIdentity; var source = GetProductResource(entity); source.Resource.ResourceURL = args.ServerFilePath; source.IsNeedWatermark = _productResources.IsNeedWatermark; productResources.Add(source); if (count == productResources.Count) { _productResources.ResourceCollection.ForEach(v => { if (v.FileUploadProcessStates == FileUploadProcessStates.Uploaded) { v.FileUploadProcessStates = FileUploadProcessStates.Processing; } }); CreateProductResources(productResources); } }; client.Upload(); }
private void CheckFLVType(ProductResourcesVM entity) { entity.Thumbnail = LoadImage(@"/ECCentral.Portal.UI.IM;Component/Resources/videop.png"); }
/// <summary> /// 获取文件实体 /// </summary> /// <param name="fileInfo"></param> /// <param name="entity"></param> private void GetFileEntity(FileInfo fileInfo, ProductResourcesVM entity) { if (entity == null) { entity = new ProductResourcesVM(); } var myStream = fileInfo.OpenRead(); var fileHead = new byte[3]; myStream.Position = 0; myStream.Read(fileHead, 0, 3); string fileHeadInfo = fileHead[0].ToString() + fileHead[1].ToString() + fileHead[2].ToString(); var fileType = Convert.ToInt32(fileHeadInfo); string fileTypedesc = fileType.ToString().Length > 6 ? fileType.ToString().Substring(0, 6) : fileType.ToString(); var result = Enum.IsDefined(typeof(FileExtension), Convert.ToInt32(fileTypedesc)); if (!result) { entity.FileUploadProcessStates = FileUploadProcessStates.CheckFailed; entity.Remark = "文件损坏"; entity.PreviewImageVisibility = Visibility.Collapsed; entity.FileType = ResourcesType.NotSupported; } else { var filetype = (FileExtension)Enum.Parse(typeof(FileExtension), fileTypedesc, false); switch (filetype) { case FileExtension.JPG: entity.FileType = ResourcesType.Image; entity.PreviewImageVisibility = Visibility.Visible; entity.PreviewImage = new BitmapImage(); entity.PreviewImage.SetSource(myStream); entity.FileType = ResourcesType.Image; entity.Thumbnail = new BitmapImage(); entity.Thumbnail.SetSource(myStream); CheckJPGType(entity); break; case FileExtension.SWF: entity.FileType = ResourcesType.Image360; entity.PreviewImageVisibility = Visibility.Collapsed; CheckSWFType(entity); break; case FileExtension.SWF1: entity.PreviewImageVisibility = Visibility.Collapsed; entity.FileType = ResourcesType.Image360; CheckSWFType(entity); break; case FileExtension.FLV: entity.FileType = ResourcesType.Video; entity.PreviewImageVisibility = Visibility.Collapsed; CheckFLVType(entity); break; } } entity.ImageSize = fileInfo.Length; entity.UploadedPercentage = 0; }