0

我有一个在 Azure 上运行的巴西网站(c# .NET 5.0 Razor Pages),我有一个页面可以上传用户的 01 个人资料照片。当我从笔记本上传照片时,代码运行良好,但是当我从手机上传照片时,我遇到了问题。有时我可以上传自拍,但不能上传保存在图库中的文件,有时上传失败。代码如下:

public async Task<IActionResult> OnPostAsync()
      {
          if (!ModelState.IsValid)
          {
              return Page();
          }
          // Person Photo
          foreach (var file in Request.Form.Files)
          {
              if (file.Name == "ClsMatchPerfil.Cpo004")
              {
                  try
                  {
                      using Bitmap bmp1 = new(file.OpenReadStream());
                      ImageCodecInfo jpgEncoder = ImageCodecInfo.GetImageEncoders().First(enc => enc.FormatID == ImageFormat.Jpeg.Guid);
                      System.Drawing.Imaging.Encoder myEncoder = System.Drawing.Imaging.Encoder.Quality;
                      EncoderParameters myEncoderParameters = new(1);
                      EncoderParameter myEncoderParameter = new(myEncoder, 60L);
                      myEncoderParameters.Param[0] = myEncoderParameter;
                      MemoryStream MS = new();
                      bmp1.Save(MS, jpgEncoder, myEncoderParameters);
                      if (MS.Length <= 2048000)
                      {
                          ClsMatchPerfil.Cpo004 = MS.ToArray();
                      }
                      else
                      {
                          M = 1;
                          return RedirectToPage("./Create");
                      }
                      MS.Close();
                      MS.Dispose();
                  }
                  catch
                  {
                      M = 2;
                      return RedirectToPage("./Create");
                  }
              }
          }

          _context.ClsMatchPerfil.Add(ClsMatchPerfil);
          await _context.SaveChangesAsync();

          return RedirectToPage("/Person/PanelPerson");
      }

HTML如下:

<form method="post" enctype="multipart/form-data">
                <div asp-validation-summary="ModelOnly" class="text-danger"></div>
                <div class="form-group">
                    <input asp-for="ClsMatchPerfil.Cpo002" class="form-control" value="@Model.PersonEmail" type="hidden" />
                    <span asp-validation-for="ClsMatchPerfil.Cpo002" class="text-danger"></span>
                </div>
                <div class="form-group">
                    <label asp-for="ClsMatchPerfil.Cpo003" class="control-label">Nome (<small>até 20 caracteres</small>):</label>
                    <input asp-for="ClsMatchPerfil.Cpo003" class="form-control" />
                    <span asp-validation-for="ClsMatchPerfil.Cpo003" class="text-danger"></span>
                </div>
                <div class="form-group">
                    <label asp-for="ClsMatchPerfil.Cpo004" class="control-label">Foto (<small>quadrada, até 2 MB</small>):</label>
                    <input asp-for="ClsMatchPerfil.Cpo004" class="form-control" type="file" accept=".jpg, .jpeg, .png;" required />
                    <span asp-validation-for="ClsMatchPerfil.Cpo004" class="text-danger"></span>
                </div>
                <div class="form-group text-right">
                    <input type="submit" value="Criar" class="btn btn-primary" />
                </div>
            </form>

我知道互联网质量可能是个问题,如果是真的,我该如何解决?或者我忘记了什么......提前谢谢你。

4

0 回答 0