将上传的文件验证为图像,然后获取其尺寸

时间:2013-04-09 07:21:18

标签: c# asp.net file-upload height width

我想将图像文件上传到FTP服务器,所以我在asp.net页面上有一个AsyncFileUpload控件。我使用以下代码来获取AsyncFileUpload1.PostedFile的类型,然后尝试获取它的尺寸但到目前为止没有运气。

string cType =asyncFU.PostedFile.ContentType;
if (cType.Contains("image"))
{
   Stream ipStream = asyncFU.PostedFile.InputStream;
   Image img = System.Drawing.Image.FromStream(ipStream); //ERROR comes here, I can't think the work around this.
   int w = img.PhysicalDimension.Width;
   int h = img.PhysicalDimension.Height;
}

正如您所看到的,错误消息表明它无法从System.Drawing.Image转换为System.Web.UI.WebControls.Image。我理解错误,但我不能想到这个工作。

我有一个AsyncFileUpload控件,其中将上传未知文件,但如果它是图像文件,则仅保存到FTP服务器。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

试试这个:

Stream ipStream = fuAttachment.PostedFile.InputStream;
        using (var image = System.Drawing.Image.FromStream(ipStream))
        {                    
            float w = image.PhysicalDimension.Width;
            float h = image.PhysicalDimension.Height;
        }

答案 1 :(得分:0)

您的img变量应该是System.Drawing.Image类型,而不是System.Web.UI.WebControls.Image