我必须在光盘上保存上传的图像,但首先我必须验证图像的宽度或高度是否小于50px。据我所知,当我们使用流时,我们必须处理这个流,所以我在验证方法中使用'using':
public bool CheckDimensions(HttpPostedFile file)
{
using (Stream stream = file.InputStream)
{
System.Drawing.Image image = System.Drawing.Image.FromStream(stream);
if (image.PhysicalDimension.Width < 50 || image.PhysicalDimension.Height < 50)
{
return false;
}
return true;
}
}
但是我无法在第二种方法中保存图像,因为HttpPostedFile文件的ContentLength为0.当我不使用'using'语句时,HttpPostedFile的ContentLength是正确的(&gt; 0)。那么在那种情况下我不应该处理流?
答案 0 :(得分:1)
因为file.InputStream
是对上传文件的引用。使用using
语句处理它意味着它被放置在也被引用/使用的任何地方
尝试
using(Stream stream = file.InputStream)
{
bool isRightSize = CheckDimensions(stream);
... other operations on the stream
}
public bool CheckDimensions(Stream stream)
{
System.Drawing.Image image = System.Drawing.Image.FromStream(stream);
if (image.PhysicalDimension.Width < 50 || image.PhysicalDimension.Height < 50)
{
return false;
}
return true;
}