ASP MVC Image upload 使用 HttpClient.PostySync 时出错

本文关键字:PostySync 出错 HttpClient 使用 MVC Image upload ASP | 更新日期: 2024-10-29 16:58:59

我有asp mvc网页上传图像,我需要验证图像的宽度和高度。我尝试从FromStream转换图像,然后通过PostSync方法将其发布到服务器。我没有收到任何错误,但图像未发布到服务器。如果我绕过 FromStream 方法,则看不到任何错误

    public virtual ActionResult SaveFileConfigure(ConfigurationDto configuration, HttpPostedFileBase filePost)
    {
         System.IO.Stream stream = filePost.InputStream;
         System.Drawing.Image image = System.Drawing.Image.FromStream(stream);
          //check image width here
          WebApiClient.UploadFile(this.FileService, stream, configuration.FileName);
    }

这是网络 API 上传代码

public static void UploadFile(string serviceUrl, Stream file, string fileName)
        {
            using (var client = new HttpClient())
            {
                using (var content = new MultipartFormDataContent())
                {
                    var fileContent = new StreamContent(file);
                    fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") {
                        FileName = fileName
                    };
                    content.Add(fileContent);
                    var result = client.PostAsync(string.Format("{0}/upload", serviceUrl.TrimEnd('/')), content).Result;
                }
            }
}

ASP MVC Image upload 使用 HttpClient.PostySync 时出错

我能够使用 FromFile 方法解决此问题。

System.Drawing.Image image = System.Drawing.Image.FromFile(filePost.FileName);

看起来在我使用 FromStream 方法后,流正在关闭并且无法发布文件。