如何在单击按钮时获取变量中上传的图像路径的值
本文关键字:图像 路径 变量 单击 按钮 获取 | 更新日期: 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" />
<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单击事件中使用保存的数据,希望对您有所帮助