上传图像后,图像将保存两次

本文关键字:图像 两次 保存 | 更新日期: 2023-09-27 17:57:09

我正在使用jQuery上传图像,到目前为止它一直工作正常。

图像被保存,

但它被保存两次,有两个不同的文件名。文件名是从DateTime.Now生成的。上载控件位于发布到 iframe 的表单中。

保存图像的代码如下所示:

int SaveInt = 0;
using (var m = new MemoryStream())
{
    bmp.Save(m, ImageFormat.Png);
    var img = Image.FromStream(m);
    var ratio = (double)1100 / img.Width;
    var newWidth = (int)(img.Width * ratio);
    var newHeight = (int)(img.Height * ratio);
    var newImage = new Bitmap(newWidth, newHeight);
    using (var g = Graphics.FromImage(newImage))
    {
        g.DrawImage(img, 0, 0, newWidth, newHeight);
    }
    img = Bloggdesign.Tools.CropImage(newImage, new Rectangle(0, 0, 1100, 

500));

    if (SaveInt == 0)
    {
        img.Save(Server.MapPath("~/trashcan/") + NewFilename + ".png");
        SaveInt++;
    }
}
if (FileToDel != null)
{
    File.Delete(Server.MapPath("/trashcan/" + FileToDel + ".png"));
}

SaveInt变量仅用于测试,但即使使用"if (SaveInt ==0"和添加的数字,它仍然会保存图像两次。当我调试时,我注意到第一个图像直接保存在触发img.Save()的行之后,第二个图像在到达最后一个"}"时保存Page_Load。在此之后,代码将跳回一些行到:

if (FileToDel != null)
{
    File.Delete(Server.MapPath("/trashcan/" + FileToDel + ".png"));
}
在这里

,第二张图像被保存了。我在代码中遗漏了什么吗?太奇怪了,图像突然被保存了两次。

上传图像后,图像将保存两次

听起来你触发了两次代码。代码看起来不错。您能否发布触发保存的代码,并确保也不会在Page_Load上执行此操作。