예제 #1
0
        private UploadImageTask NewUploadImageTask(ImageShackEnum imageShack, StorageFile file)
        {
            switch (imageShack)
            {
            case ImageShackEnum.Jiuyou:
                return(new JyUploadImage(file));

            case ImageShackEnum.Smms:
                return(new SmmsUploadImage(file));

            case ImageShackEnum.Qin:
                return(new QnUploadImage(file)
                {
                    Accound = Account.CloundAccound
                });

            case ImageShackEnum.Cimage:
                return(new BitStamp.Model.Cimage.Cimage(file));

            default:
                throw new ArgumentOutOfRangeException(nameof(imageShack), imageShack, null);
            }

            //return new JyUploadImage(file);
        }
예제 #2
0
        public async Task Jcloud(Action onUpload)
        {
            //Cimage image = new Cimage(File);
            //image.UploadImage();
            //return;

            ImageShackEnum imageShack = AccoutGoverment.AccountModel.Account.ImageShack;

            if (File.FileType == ".gif" && imageShack == ImageShackEnum.Jiuyou)
            {
                imageShack = ImageShackEnum.Qin;
            }
            var size = (await File.GetBasicPropertiesAsync()).Size;

            //1M
            //1024k
            //‪125000‬
            if (size > 12500000)
            {
                imageShack = ImageShackEnum.Smms;
            }
            //4326  24,447

#if DEBUG
            //imageShack = ImageShackEnum.Cimage;
#endif

            UploadImageTask uploadImageTask = NewUploadImageTask(
                imageShack, File);
            uploadImageTask.OnUploaded += (s, e) =>
            {
                UploadImageTask uploadImage = s as UploadImageTask;
                Visibility = Visibility.Collapsed;
                Address    = "上传" + File.Name;
                if (uploadImage == null)
                {
                    return;
                }
                if (e)
                {
                    //LinkReminder = "![](" +
                    //               uploadImage.Url + ")";
                    //Bcode = $"[img]{uploadImage.Url}[/img]";
                    Url = uploadImage.Url;
                    onUpload?.Invoke();
                }
                else
                {
                    Address += "失败";
                }
            };
            Visibility = Visibility.Visible;
            uploadImageTask.UploadImage();
        }
예제 #3
0
        private ImageShackEnum CheckShack(ImageShackEnum imageShack)
        {
            //检查当前是否可以使用
            if (imageShack == ImageShackEnum.Qin)
            {
                //如果图床账号错误
                if (string.IsNullOrEmpty(Account.CloundAccound.AccessKey) ||
                    string.IsNullOrEmpty(Account.CloundAccound.Bucket) ||
                    string.IsNullOrEmpty(Account.CloundAccound.SecretKey) ||
                    string.IsNullOrEmpty(Account.CloundAccound.Url))
                {
                    return(ImageShackEnum.Smms);
                }
            }

            return(imageShack);
        }
예제 #4
0
        private UploadImageTask NewUploadImageTask(ImageShackEnum imageShack, StorageFile file)
        {
            switch (imageShack)
            {
            case ImageShackEnum.Jiuyou:
                return(new JyUploadImage(file));

            case ImageShackEnum.Smms:
                break;

            case ImageShackEnum.Qin:
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(imageShack), imageShack, null);
            }
            return(new JyUploadImage(file));
        }
예제 #5
0
파일: HeaaxThesolw.cs 프로젝트: ktnhhxh/UWP
        public async Task Jcloud(Action <bool> onUpload)
        {
            ImageShackEnum imageShack = Account.ImageShack;

            if (File.FileType == ".gif" && imageShack == ImageShackEnum.Jiuyou)
            {
                imageShack = ImageShackEnum.Qin;
            }

            var size = (await File.GetBasicPropertiesAsync()).Size;

            //1M
            //1024k
            //‪125000‬
            if (size > 125000)
            {
                imageShack = ImageShackEnum.Smms;
            }
            //4326  24,447

            imageShack = CheckShack(imageShack);

#if DEBUG
            //imageShack = ImageShackEnum.Cimage;
#endif

            UploadImageTask uploadImageTask = NewUploadImageTask(
                imageShack, File);
            uploadImageTask.OnUploaded += (s, e) =>
            {
                if (!(s is UploadImageTask uploadImage))
                {
                    onUpload?.Invoke(false);
                    return;
                }

                Url = uploadImage.Url;

                onUpload?.Invoke(e);
            };
            uploadImageTask.UploadImage();
        }