另一个进程正在使用文件生成缩略图

时间:2013-04-19 09:34:56

标签: c# asp.net stream

我正在处理文件管理器项目。如果文件是图像类型,我需要生成缩略图。我可以通过方法

使用IHttpHandler
  Sytem.Drawing.Image.GetThumbnailImage(),

以下是一些代码

Hashtable ht;
            ht = new Hashtable();
            using (FileStream fInfo = new FileStream(context.Server.MapPath(url), FileMode.Open))
            {
                byte[] bFile;
                bFile = GenerateThumbnail(fInfo, XLen, YLen);
                ht.Add(id, bFile);
                fInfo.Close();

                Byte[] arrImg = (byte[])ht[id];
                context.Response.Clear();
                context.Response.ContentType = "image/jpeg";
                context.Response.BinaryWrite(arrImg);
                context.Response.End();
            }
    private byte[] GenerateThumbnail(Stream fStream, string xLen, string yLen)
    {
        using (Image img = Image.FromStream(fStream))
        {
            Image thumbnailImage = img.GetThumbnailImage(int.Parse(xLen), int.Parse(yLen), new Image.GetThumbnailImageAbort(ThumbnailCallback), IntPtr.Zero);

            using (MemoryStream imageStream = new MemoryStream())
            {
                thumbnailImage.Save(imageStream,System.Drawing.Imaging.ImageFormat.Jpeg);

                byte[] imageContent = new Byte[imageStream.Length];
                imageStream.Position = 0;
                imageStream.Read(imageContent, 0, (int)imageStream.Length);
                return imageContent;
            }
        }
    }

问题

新上传的关于genrating thumb thrpect的文件:被其他进程使用,之后它会显示缩略图。问:哪里我缺少关闭流?

0 个答案:

没有答案