0

これらのコードを使用して、ルートディレクトリのフォルダに2つの画像をアップロードし、別の画像をアップロードするための2つのボタンを指定しました。button2をクリックすると、画像をアップロードしてその画像を画像コントロールに表示できます。ボタン2。しかし、ここでは、button1(比較)をクリックしてButton2とbutton3を使用してアップロードした画像のパスを取得したいと思います。

これが私が使用している私のコードです:私はButton1クリック機能でこれを試しました:しかしそれは何の値も示していません。

2つの文字列変数filename1とfilename2に値を取得するにはどうすればよいですか?

        //string filename1 = FileUpload1.PostedFile.FileName;
        //Response.Write(filename1);
        //string filename2 = FileUpload2.PostedFile.FileName;
        //Response.Write(filename2);

ASPXページコード:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Day_8_campairTwoImageUpload.aspx.cs" Inherits="validate.Day_8_campairTwoImageUpload" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:FileUpload ID="FileUpload1" runat="server" />
        <asp:Button ID="Button2" runat="server"
            Text="upload" onclick="Button2_Click" /><asp:Label ID="StatusLabel" runat="server" Text="Status"></asp:Label>
        <br /><br />
        <asp:FileUpload ID="FileUpload2" runat="server" /><asp:Button ID="Button3" 
            runat="server" Text="upload" onclick="Button3_Click" /><asp:Label ID="StatusLabel1" runat="server"
                Text="Status"></asp:Label><br /><br />

    <asp:Button ID="Button1" runat="server" Text="Compar" a onclick="Button1_Click" />
    </div>
    <asp:Image ID="Image1" runat="server" Height="100" Width="100"   />&nbsp;&nbsp;&nbsp;
    <asp:Image ID="Image2" runat="server" Height="100" Width="100" />
    </form>
</body>
</html>

ASPX.csページコード:

//BUTTON2=CODE TO UPLOAD FIRST IMAGE AND SHOW IT IN IMAGE CONTROL
        protected void Button2_Click(object sender, EventArgs e)
        {

            if (FileUpload1.HasFile)
            {
                try
                {
                    if (FileUpload1.PostedFile.ContentType == "image/jpeg")
                    {
                        if (FileUpload1.PostedFile.ContentLength < 102400)
                        {
                            //EnsureDirectoriesExist();

                            string filename1 = Path.GetFileName(FileUpload1.FileName);
                            FileUpload1.SaveAs(Server.MapPath(@"~/upload/") + filename1);
                            StatusLabel.Text = "Upload status: File uploaded!";

                            Image1.ImageUrl ="/Upload/"+FileUpload1.FileName.ToString();


                           // string filename1 = Server.MapPath(@"~/upload/") + FileUpload1.FileName;
                           // Response.Write(filename1);
                        }
                        else
                            StatusLabel.Text = "Upload status: The file has to be less than 100 kb!";
                    }
                    else
                        StatusLabel.Text = "Upload status: Only JPEG files are accepted!";
                }
                catch (Exception ex)
                {
                    StatusLabel.Text = "Upload status: The file could not be uploaded. The following error occured: " + ex.Message;
                }
            }
        }
//BUTTON3=CODE TO UPLOAD SECOND IMAGE AND SHOW IT IN IMAGE CONTROL
        protected void Button3_Click(object sender, EventArgs e)
        {
            if (FileUpload2.HasFile)
            {
                try
                {
                    if (FileUpload2.PostedFile.ContentType == "image/jpeg")
                    {
                        if (FileUpload2.PostedFile.ContentLength < 102400)
                        {
                            //EnsureDirectoriesExist();

                            string  filename2 = Path.GetFileName(FileUpload2.FileName);
                            FileUpload2.SaveAs(Server.MapPath(@"~/upload/") + filename2);
                            StatusLabel1.Text = "Upload status: File uploaded!";
                            Image2.ImageUrl = "/Upload/" + FileUpload2.FileName.ToString();
                        }
                        else
                            StatusLabel1.Text = "Upload status: The file has to be less than 100 kb!";
                    }
                    else
                        StatusLabel1.Text = "Upload status: Only JPEG files are accepted!";
                }
                catch (Exception ex)
                {
                    StatusLabel1.Text = "Upload status: The file could not be uploaded. The following error occured: " + ex.Message;
                }
            }


        }

//BUTTON1=CODE TO GET THE PATH NAME OF BOTH UPLOADED IMAGE IN TWO VARIABLE


 protected void Button1_Click(object sender, EventArgs e)
        {


           // string filename1 = FileUpload1.PostedFile.FileName;
            //Response.Write(filename1);
            // string filename2 = FileUpload2.PostedFile.FileName;
            //Response.Write(filename2);


        }

        }
    }
4

2 に答える 2

0

ViewState/Session/HiddenField を使用して、アップロードされたファイルのパスをボタン 2 とボタン 3 のクリック ハンドラーに保存できます。

protected void Button2_Click(object sender, EventArgs e)
 {
   if (FileUpload1.HasFile)
    {
      .....
      ViewState["file1"]=Server.MapPath("~/upload/" + FileUpload1.FileName);
      ....
    }
 }

 protected void Button3_Click(object sender, EventArgs e)
 {
   if (FileUpload2.HasFile)
    {
      .....
      ViewState["file2"]=Server.MapPath("~/upload/" + FileUpload2.FileName);
      ....
    }
 }

button1_click ハンドラで、

protected void Button1_Click(object sender, EventArgs e)
{
   if(ViewState["file1"]!=null)
      Label1.Text=ViewState["file1"].ToString();
   if(ViewState["file2"]!=null)
      Label2.Text=ViewState["file2"].ToString();
 }
于 2012-06-09T11:05:53.733 に答える
0

データベースやセッションなどの一時変数などのどこにも画像のURLを保存していないことがわかりました。したがって、これらの画像のURLをデータベースまたはセッションなどの一時変数に保存し、 button3 クリック イベントにデータを保存しました。お役に立てば幸いです

于 2012-06-09T11:10:01.083 に答える