private void btnUploadUserFile_Click(object sender, RoutedEventArgs e) { var openFileDialog = new Microsoft.Win32.OpenFileDialog(); if (openFileDialog.ShowDialog() == true) { FileInfo file = new FileInfo(openFileDialog.FileName); string extension = file.Extension; if (extension == ".bmp" || extension == ".jpg" || extension == ".png" || extension == ".gif" || extension == ".BMP" || extension == ".JPG" || extension == ".PNG" || extension == ".GIF") { } else { MessageBox.Show("请上传图片文件!"); return; } if (file.Length > 5 * 1024 * 1024) { MessageBox.Show("文件不能超过5M"); return; } //lbCertificateApproveStatus.Content = "正在上传..."; PauseGUI(); Uri uri = new Uri(openFileDialog.FileName); BitmapImage bitmap0 = new BitmapImage(uri); BitmapImage bitmap1 = new BitmapImage(); double ratio = maxBitmapSize / (double)file.Length; //if (file.Length > 200 * 1024) if (file.Length > maxBitmapSize) { bitmap1.BeginInit(); bitmap1.UriSource = uri; bitmap1.DecodePixelWidth = Convert.ToInt16(bitmap0.Width * ratio); bitmap1.DecodePixelHeight = Convert.ToInt16(bitmap0.Height * ratio); bitmap1.EndInit(); } else { bitmap1 = new BitmapImage(uri); } string certificateImagebase64String = ToBase64(bitmap1); string userid = _UserInfo.PhoneNumber; ThreadPool.QueueUserWorkItem(delegate { UploadCertificateByAdminWorker.SendUploadCertificateRequest( certificateImagebase64String, userid, successCallback : delegate(UploadCertificateByAdminResponse response) { Dispatcher.Invoke(new Action(delegate { _BitmapSourceCertificate = bitmap1; imageCertificate.Source = _BitmapSourceCertificate; _UserInfo.CertificateImage = certificateImagebase64String; if (UpdateHandler != null) { UpdateHandler(sender, e); } MessageBox.Show("上传成功!"); ResumeGUI(); })); }, failureCallback : delegate(string failureReason) { Dispatcher.Invoke(new Action(delegate { MessageBox.Show("医师资格证上传失败。" + failureReason, "", MessageBoxButton.OK, MessageBoxImage.Asterisk); ResumeGUI(); })); }, errorCallback : delegate(Exception ex) { Dispatcher.Invoke(new Action(delegate { Util.ShowExceptionMessage(ex, "医师资格证上传出错。"); ResumeGUI(); })); }); }); } }
/// <summary> /// 上传医生资格证照片 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnUploadPersonImage_Click(object sender, RoutedEventArgs e) { var openFileDialog = new Microsoft.Win32.OpenFileDialog(); openFileDialog.FileName = "资格证书"; openFileDialog.DefaultExt = ".jpg"; openFileDialog.Filter = "jpg|*.jpg|jpeg|*.jpeg"; if (openFileDialog.ShowDialog() == true) { FileInfo file = new FileInfo(openFileDialog.FileName); string extension = file.Extension; if (extension == ".bmp" || extension == ".jpg" || extension == ".png" || extension == ".gif" || extension == ".BMP" || extension == ".JPG" || extension == ".PNG" || extension == ".GIF") { } else { MessageBox.Show("请上传图片文件!"); return; } if (file.Length > 5 * 1024 * 1024) { MessageBox.Show("文件不能超过5M"); return; } lbCertificateApproveStatus.Content = "正在上传..."; PauseGUI(); Uri uri = new Uri(openFileDialog.FileName); BitmapImage bitmap0 = new BitmapImage(uri); BitmapImage bitmap1 = new BitmapImage(); double ratio = maxBitmapSize / (double)file.Length; //if (file.Length > 200 * 1024) if (file.Length > maxBitmapSize) { bitmap1.BeginInit(); bitmap1.UriSource = uri; bitmap1.DecodePixelWidth = Convert.ToInt16(bitmap0.Width * ratio); bitmap1.DecodePixelHeight = Convert.ToInt16(bitmap0.Height * ratio); bitmap1.EndInit(); } else { bitmap1 = new BitmapImage(uri); } string base64String = ToBase64(bitmap1); ThreadPool.QueueUserWorkItem(delegate { UploadCertificateByAdminWorker.SendUploadCertificateRequest( base64String, _userInfo.PhoneNumber, successCallback : delegate(UploadCertificateByAdminResponse response) { Dispatcher.Invoke(new Action(delegate { _bitmapCertificate = bitmap1; imagePersonCertify.Source = bitmap1; ResumeGUI(); //lbCertificateApproveStatus.Content = "等待工作人员审核"; GetCertificateApproveStatus(); _userInfo.CertificateImage = base64String; MessageBox.Show("资格证书上传成功!"); })); }, failureCallback : delegate(string failureReason) { Dispatcher.Invoke(new Action(delegate { ResumeGUI(); lbCertificateApproveStatus.Content = _certificateApproveStatus.Result; MessageBox.Show(failureReason); })); }, errorCallback : delegate(Exception ex) { Dispatcher.Invoke(new Action(delegate { ResumeGUI(); LungCare.SupportPlatform.WebAPIWorkers.Util.ShowExceptionMessage(ex, "上传资格证书出错"); lbCertificateApproveStatus.Content = _certificateApproveStatus.Result; })); }); }); } }