0

我已经使用这些代码在根目录的文件夹中上传了两个图像,并且我已经给出了两个按钮来上传单独的图像。单击按钮 2 我可以上传图像并在图像控件中显示该图像,我也为单击按钮 2。但是在这里,我想通过单击 button1(比较)来获取我使用 Button2 和 button3 上传的图像的路径。

这是我正在使用的代码:我在 Button1 点击功能上试过这个:但它没有显示任何值。

我应该怎么做才能获得两个字符串变量 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 将上传文件的路径保存在 button2 和 button3 的 Click 处理程序中。

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 回答