我创建了一个按钮,可以上传所有图片文件以及系统中的doc文件和PDF文件。 以下是以下代码:
if (dlg.ShowDialog() == DialogResult.OK)
{
pictureBox2.Image = Image.FromFile(dlg.FileName);
pictureBox2.SizeMode = PictureBoxSizeMode.Zoom;
currentFileName = dlg.FileName;
button2.Enabled = true;
}
}
但是当我想要上传doc文件时,我会弹出一个错误。首先是可以上传doc文件吗?如果是,那么我在下面的代码行中显示内存不足的问题
pictureBox2.Image = Image.FromFile(dlg.FileName);
答案 0 :(得分:1)
答案 1 :(得分:0)
请参阅MSDN的link。加载图片时,如果格式不合适,会抛出OutOfmemoryException。
要解决您的问题,您应该检查图片文件的格式,而不是像上面那样直接加载。
请参考here以了解如何检测图像文件的格式。
要加载PDF或Word文档,您应该参考here。
答案 2 :(得分:0)
您收到该错误的原因是doc
文件不是有效的图像格式。
文档中概述了这一点:http://msdn.microsoft.com/en-us/library/stf701f5.aspx
可以上传doc
文件,但不能在您想要的上下文中,即使用Image.FromFile
并将其分配给图片框对象。
答案 3 :(得分:0)
http://msdn.microsoft.com/en-us/library/stf701f5.aspx
该主题中涉及的Out of Memory异常。
如果文件类型无效,FromFile方法将抛出异常。
你应该首先对文件类型的兼容性进行必要的检查,更不用说围绕这种方法包装一个try catch,以确保你的编码尽可能的防御。