0

jQueryを使用して画像をアップロードしていますが、今までうまくいきました。

画像は保存されますが、2 つの異なるファイル名で 2 回保存されます。ファイル名は から生成され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」と追加された数値を使用しても、画像は 2 回保存されますimg.Save()。の最後の "}" に到達すると、画像が保存されPage_Loadます。この後、コードは次の行に戻ります。

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

ここで 2 番目の画像が保存されます。コードに何か不足していますか? 画像が突然2回保存されるのはとても奇妙です。

4

1 に答える 1

1

コードを 2 回トリガーしているようです。コードは問題ないようです。Page_Load保存をトリガーしているコードを投稿して、同様に実行していないことを確認できますか。

于 2013-02-03T06:45:27.197 に答える