.net - GDI+ 用这个 "generic error"害死我了

标签 .net asp.net image-processing gdi+

老实说,在 ASP.Net 中运行 GDI+ 是怎么回事?它以如此神秘的方式工作,错误描述也非常隐晦:GDI+ 中发生一般性错误。

哦,非常感谢你,现在我确切地知道出了什么问题......不是。

看看导致错误的代码,也许你能帮我?

var fileStream = fuImage.FileContent;
var imageStream = new MemoryStream();

imageStream.SetLength(fileStream.Length);
fileStream.Read(imageStream.GetBuffer(), 0, (int)fileStream.Length);

imageStream.Flush();
fileStream.Close();

using (var image = System.Drawing.Image.FromStream(imageStream))
{
    using (Bitmap bmp = new Bitmap(image.Width, image.Height))
    {
        using (Graphics gr = Graphics.FromImage(bmp))
        {
            gr.DrawImage(image, 0, 0);
            bmp.Save(path);
        }
    }
}

这实际上是我的代码的简化版本,但它仍然会导致错误。 fuImage 是一个 FileUpload 控件(.NET Web 窗体)。

如果您收到此错误,请确保存在您要保存文件的位置的完整路径...否则您可能会收到此“一般错误”消息。

最佳答案

将文件复制到 MemoryStream 中并读取它。
来自 FileUpload 的流是不可搜索的,这是 GDI+ 不喜欢的。

关于.net - GDI+ 用这个 "generic error"害死我了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4519624/

相关文章:

.net - 如何指定 ASP.NET Core 应用程序托管的端口?

c# - 我在哪里可以得到 NLog 提供的 "ambient properties"的列表?

asp.net - IDataProtectionProvider 的目的字符串数组如何将默认值作为项目的物理路径?

c# - 为什么交换插槽时 Azure 应用服务会重新启动?

java - 从像素值重新创建整数时出现 ArrayIndexOutOfBounds 异常

c++ - 使用 Leptonica API 裁剪图片 -> 或者使用哪个图像处理库?

javascript - 半透明点上的附加颜色

c# - 从 webbrowser 控件复制所有文本

.net - 用于 Windows Server 事务/错误处理的服务总线 1.0

asp.net - 如果.NET中证书已过期,如何调用https asmx Web服务