0

私はファイルマネージャープロジェクトに取り組んでいます。ファイルが画像タイプの場合、サムネイルを生成する必要があります。IHttpHandlerwith メソッド を使用して取得できます

  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;
            }
        }
    }

問題

親指を投げる期待を生成する際に新しくアップロードされたファイル:別のプロセスによって使用されており、しばらくしてサムネイルが表示されます。Q.ストリームを閉じるのにどこが足りないのですか?

4

0 に答える 0