1

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

这是我正在使用的代码:

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 次,然后我使用类似的代码从上传中删除选定的图像。

4

1 回答 1

0

什么是 ImageUtility?如果它实现了 IDisposable,那么您可能想要尝试显式处理它而不是将变量设置为 null。如果您可以将其包装在 using 块中,那就更好了。

于 2013-10-29T19:42:47.547 回答