0

他の質問の1つと似ていますが、説明が必要です。

複数のユーザーが同時にオンになるWebアプリケーションがあります。アプリでは、アプリフォルダーの1つにある画像が以下のように描画され、保存されてから、ページの画像コントロールに追加されます。

Bitmap image = new Bitmap(Server.MapPath("~") + "/Assets/img/timegrid.jpg");
Graphics graphics = Graphics.FromImage(image);
Pen p = new Pen(Color.Blue, 5); 
//draw on image
graphics.DrawLine(p, aPoint, bPoint); 

//save new image
image.Save(Server.MapPath("~") + "/Assets/img/newtimegrid.jpg");
imgGrid.ImageUrl = "~/Assets/img/newtimegrid.jpg";

各ユーザーの新しい画像は異なって見えます。ただし、すべてのユーザーが同じファイル名で保存しているため、ユーザーAにユーザーBのnewtimegrid.jpgが表示されるのではないかと心配しています。一般的な画像ハンドラーを使用することを聞いたことがあり、ここでいくつかの解決策を読みましたが、それを使用する方法、作成した場合の呼び出し方法、またはこれが解決策であるかどうかはまだわかりません私の問題に。どんな助けでもいただければ幸いです。

4

1 に答える 1

1

セッションでuserIDを保持し、パスでこのIDを使用して、各ユーザーイメージパスのイメージのパスを一意に識別することをお勧めします。

最初に、ユーザーのパスがすでに存在するかどうかを確認できます。

string strDirPath = Server.MapPath("~") + "/Assets/img/ + Session["UserID"].ToString();

if(Directory.Exists(strDirPath))
{
     Bitmap image = new Bitmap(strDirPath + "\\" + timegrid.jpg");
     //your code here
}
else
{
     DirectoryInfo CreateDirectory(strDirPath);
     Bitmap image = new Bitmap(strDirPath + "\\" + timegrid.jpg");
     //your code here
}
于 2012-05-24T17:27:10.060 に答える