使用HTML输入文件控件加载和删除图像时出错

时间:2013-10-29 19:32:20

标签: c# asp.net

在尝试加载图像或使用ASP / C#卸载图像时,我急需帮助解决问题。我遇到的问题是我第一次运行代码并将图像加载到缩略图中,我没有问题,但是当我尝试删除图片或加载第二个或第三个图像时,它需要很长时间才能达到事件,我得到一个Out of Memory错误。我觉得有些东西被锁定了,需要一段时间才能解锁,但我不确定。

以下是我正在使用的代码:

protected void btnUploadImgPicture1_ServerClick(object sender, EventArgs e)
    {
        using (filePicture1)
        {
            if (filePicture1.PostedFile.FileName != "")
            {
                imageUtil = new ImageUtility();
                string realPhysicalPath = Path.Combine(Server.MapPath("~/upload/"), filePicture1.PostedFile.FileName);
                filePicture1.PostedFile.SaveAs(realPhysicalPath);
                //imgVehiclePicture1.Src = realPhysicalPath;
                using (imgVehiclePicture1)
                {
                    imgVehiclePicture1.Attributes["src"] = imageUtil.getBase64String(realPhysicalPath);
                    Session.Add("Image1", realPhysicalPath);
                    imageUtil = null;
                }

            }
        }
    }

 public  string getBase64String(string path)
    {
        Image img = Image.FromFile(path);
        byte[] imageBytes = imageToByteArray(img);
        string base64String = Convert.ToBase64String(imageBytes, 0, imageBytes.Length);
        return "data:image/png;base64," + base64String;
    }

我对3个不同的事件使用此代码3次,然后我使用类似的代码从上传中删除所选图像。

1 个答案:

答案 0 :(得分:0)

什么是ImageUtility?如果它实现了IDisposable,那么您可能希望尝试显式处理它而不是将变量设置为null。如果你可以将它包装在一个使用块中,那就更好了。