如何在单击按钮时获取变量中上传的图像路径的值

本文关键字:图像 路径 变量 单击 按钮 获取 | 更新日期: 2023-09-27 18:36:43

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

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

我应该怎么做才能将值放入两个字符串变量文件名 1 和文件名 2 中?

        //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);

        }
        }
    }

如何在单击按钮时获取变量中上传的图像路径的值

您可以使用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();
 }

结果显示您没有将图像网址保存在任何地方,例如数据库或临时变量(例如会话等) ,因此,您应该将这些图像URL保存在数据库或临时变量(例如会话)中,并在button3单击事件中使用保存的数据,希望对您有所帮助