You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

74 lines
2.6 KiB

1 month ago
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Drawing;
  4. using System.Drawing.Imaging;
  5. using System.IO;
  6. using System.Net.Http;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. namespace ShenTun.ImageCollection.Common
  11. {
  12. public class ApiService
  13. {
  14. private readonly HttpClient _httpClient;
  15. public ApiService()
  16. {
  17. _httpClient = new HttpClient();
  18. }
  19. public async Task<string> PostAsync(string url, string token, object data)
  20. {
  21. _httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);
  22. var jsonStr=Newtonsoft.Json.JsonConvert.SerializeObject(data);
  23. var content = new StringContent(jsonStr, Encoding.UTF8, "application/json");
  24. var response = await _httpClient.PostAsync(url, content);
  25. var responseContent = await response.Content.ReadAsStringAsync();
  26. return responseContent;
  27. }
  28. public string GetUploadApi(string website)
  29. {
  30. Uri uri = new Uri(website);
  31. Uri uri2 = new Uri(uri, "api/app/RegisterCheckPicture/UpdateRegisterCheckPicture");
  32. return uri2.ToString();
  33. }
  34. public async Task UploadImage(MemoryStream stream,SelectImageInfo imageInfo)
  35. {
  36. int iPosS=imageInfo.Image.localPathName.LastIndexOf(".");
  37. int iPos = imageInfo.Image.localPathName.LastIndexOf("\\");
  38. string localFilename = imageInfo.Image.localPathName.Substring(iPos + 1, iPosS-iPos-1);
  39. byte[] imageBytes = stream.ToArray();
  40. PictureBaseStr baseStr = new PictureBaseStr()
  41. {
  42. registerCheckPictureId = imageInfo.Image.id,
  43. localPathName = imageInfo.Image.localPathName,
  44. fileName = localFilename,
  45. pictureBaseStr = Convert.ToBase64String(imageBytes)
  46. };
  47. string url = GetUploadApi(imageInfo.ImageSvr);
  48. var resStr = await PostAsync(url, imageInfo.Token, baseStr);
  49. if(resStr.Contains("<!DOCTYPE html>"))
  50. {
  51. MessageBox.Show("Token验证没通过");
  52. return;
  53. }
  54. DialogResponse res=JsonHelper.DeserializeObject<DialogResponse>(resStr);
  55. if (res.code >=0)
  56. {
  57. MessageBox.Show(string.Format("文件:{0}上传成功!", localFilename));
  58. }
  59. else
  60. {
  61. MessageBox.Show(string.Format("文件:{0}上传失败:{1}", localFilename,res.message));
  62. }
  63. }
  64. }
  65. }