/// <summary> /// 当文件被拖拽进上传框中 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void UploadArea_Drop(object sender, DragEventArgs e) { // 如果当前有文件正在上传,则阻止当前行为 if (UploadProgressCollection.Count > 0) { string msg = AppTools.GetReswLanguage("WaitToUpload"); var tipDialog = new TipDialog(AppTools.GetReswLanguage("DefaultTipTitle"), msg); await tipDialog.ShowAsync(); return; } // 检测授权码是否存在,如不存在,则要求用户重新输入授权码 string authKey = AppTools.GetLocalSetting(AppSettings.AuthKey, ""); if (string.IsNullOrEmpty(authKey)) { var keyDialog = new AuthKeyDialog(); await keyDialog.ShowAsync(); return; } // 检测拖拽的文件 if (e.DataView.Contains(StandardDataFormats.StorageItems)) { var items = await e.DataView.GetStorageItemsAsync(); items = items.OfType <StorageFile>().ToList() as IReadOnlyList <IStorageItem>; // 对文件进行筛选,只要指定格式的图片 if (items != null && items.Any()) { var imgList = new List <StorageFile>(); foreach (var item in items) { string path = item.Path; string extends = Path.GetExtension(item.Path).Substring(1); var file = item as StorageFile; if (extends.ToLower() == "jpg" || extends.ToLower() == "png" || extends.ToLower() == "bmp" || extends.ToLower() == "gif" || extends.ToLower() == "jpeg" || extends.ToLower() == "webp") { imgList.Add(file); } } FileUpload(imgList); } } }
private async void FromClipboardMenuItem_Click(object sender, RoutedEventArgs e) { if (UploadProgressCollection.Count > 0) { string msg = AppTools.GetReswLanguage("WaitToUpload"); var tipDialog = new TipDialog(AppTools.GetReswLanguage("DefaultTipTitle"), msg); await tipDialog.ShowAsync(); return; } string authKey = AppTools.GetLocalSetting(AppSettings.AuthKey, ""); if (string.IsNullOrEmpty(authKey)) { var keyDialog = new AuthKeyDialog(); await keyDialog.ShowAsync(); return; } try { var data = Clipboard.GetContent(); var bitmap = await data.GetBitmapAsync(); var tempFile = await ApplicationData.Current.LocalFolder.CreateFileAsync(Guid.NewGuid().ToString("N") + ".png", CreationCollisionOption.OpenIfExists); using (var stream = await bitmap.OpenReadAsync() as IRandomAccessStream) { using (var reader = new DataReader(stream)) { await reader.LoadAsync((uint)stream.Size); var buffer = new byte[(int)stream.Size]; reader.ReadBytes(buffer); await FileIO.WriteBytesAsync(tempFile, buffer); } } await FileUpload(new List <StorageFile>() { tempFile }, true); } catch (Exception) { throw; } }
/// <summary> /// 点击上传区域,弹出文件选择框 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void UploadArea_Tapped(object sender, TappedRoutedEventArgs e) { if (UploadProgressCollection.Count > 0) { string msg = AppTools.GetReswLanguage("WaitToUpload"); var tipDialog = new TipDialog(AppTools.GetReswLanguage("DefaultTipTitle"), msg); await tipDialog.ShowAsync(); return; } string authKey = AppTools.GetLocalSetting(AppSettings.AuthKey, ""); if (string.IsNullOrEmpty(authKey)) { var keyDialog = new AuthKeyDialog(); await keyDialog.ShowAsync(); return; } var picker = new FileOpenPicker(); picker.SuggestedStartLocation = PickerLocationId.Desktop; picker.ViewMode = PickerViewMode.Thumbnail; picker.FileTypeFilter.Add(".jpg"); picker.FileTypeFilter.Add(".jpeg"); picker.FileTypeFilter.Add(".png"); picker.FileTypeFilter.Add(".bmp"); picker.FileTypeFilter.Add(".gif"); picker.FileTypeFilter.Add(".webp"); var files = await picker.PickMultipleFilesAsync(); if (files != null && files.Any()) { var imgList = new List <StorageFile>(); foreach (var item in files) { var file = item as StorageFile; imgList.Add(file); } FileUpload(imgList); } }
private async void LinkButton_Click(object sender, RoutedEventArgs e) { var tip = new HoldMaskTip(AppTools.GetReswLanguage("WaittingTip")); tip.Show(); // 开始走OneDrive登录流程 bool isAuth = await App.OneDriveTools.OneDriveAuthorize(); // 如果用户成功登录并同意授权 if (isAuth) { AppTools.WriteLocalSetting(AppSettings.IsOneDriveAuthorized, "True"); // 检查用户云端内是否有图片存储 bool hasCloudMeta = await App.OneDriveTools.EnsureCloudMetaExist(); if (hasCloudMeta) { // 有的话进行同步 await App.OneDriveTools.ReplaceDatabase(); App.Db = await App.OneDriveTools.GetImgMetaList(); using (App.Db) { if (App.Db.Images.Count() > 0) { string url = App.Db.Images.First().URL; int authKeyIndex = url.IndexOf("key="); string authkey = url.Substring(authKeyIndex + 4); AppTools.WriteLocalSetting(AppSettings.AuthKey, authkey); } } } else { // 没有就在应用文件夹里建一个 await App.OneDriveTools.DatabaseInit(); } tip.Close(); // 要求用户输入授权码 string ak = AppTools.GetLocalSetting(AppSettings.AuthKey, ""); if (string.IsNullOrEmpty(ak)) { // 弹出授权码输入框 bool isCancel = false; var authDialog = new AuthKeyDialog(); authDialog.PrimaryButtonClick += (_s, _e) => { _e.Cancel = true; authDialog.IsPrimaryButtonEnabled = false; string key = authDialog.AuthKeyBox.Text.Trim(); if (string.IsNullOrEmpty(key)) { var msg = AppTools.GetReswLanguage("AuthKeyEmpty"); new PopupMaskTip(msg).Show(); } else { AppTools.WriteLocalSetting(AppSettings.AuthKey, key); authDialog.Hide(); } authDialog.IsPrimaryButtonEnabled = true; }; authDialog.CloseButtonClick += (_s, _e) => { isCancel = true; AppTools.WriteLocalSetting(AppSettings.AuthKey, ""); }; await authDialog.ShowAsync(); if (!isCancel) { var tipDialog = new TipDialog(AppTools.GetReswLanguage("DefaultTipTitle"), AppTools.GetReswLanguage("AuthorizeSuccess")); await tipDialog.ShowAsync(); } else { var tipDialog = new TipDialog(AppTools.GetReswLanguage("DefaultTipTitle"), AppTools.GetReswLanguage("AuthorizeCancel")); await tipDialog.ShowAsync(); } } // 跳转至首页 Frame rootFrame = Window.Current.Content as Frame; AppTools.WriteLocalSetting(AppSettings.IsFirstRun, "False"); rootFrame.Navigate(typeof(MainPage)); } else { tip.Close(); string title = AppTools.GetReswLanguage("AuthErrorTitle"); string content = AppTools.GetReswLanguage("AuthErrorContent"); var dialog = new TipDialog(title, content); await dialog.ShowAsync(); } }