我正在使用 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"));
}
第二张图片就是在这里保存的。我在代码中遗漏了什么吗?太奇怪了,图像突然被保存了两次。