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

时间:2013-02-01 21:42:03

标签: c# .net

我正在使用jQuery上传图片,直到现在它一直运行良好。

图像会被保存,但会以两个不同的文件名保存TWICE。文件名由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"));
}

这是第二张图片保存的地方。我在代码中遗漏了什么吗?图像突然被保存两次真是太奇怪了。

1 个答案:

答案 0 :(得分:1)

听起来你正在触发代码两次。代码看起来很好。您是否可以发布触发保存的代码,并确保您不会在Page_Load上执行此操作。