老实说,在 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/