【发布时间】:2015-11-18 00:43:54
【问题描述】:
我有一个名为 Upload 的文件,用于上传图片。其他文件然后调用此上传文件。问题是我需要知道单击了哪个上传按钮,因为一个按钮需要将图像保存在与其他上传按钮不同的路径文件中。我尝试创建一个会话,但每次加载页面时都会创建会话,所以这不起作用。处理上传的代码位于 iframe 中。当我单击上传按钮时,会出现 iframe,它提供了从您的计算机中选择文件并上传的选项。我需要将 ShowUploadImage() 函数中的值传递给 iframe,这样我就知道点击了哪个上传按钮。
这是上传按钮后面的代码:
function ShowUploadImage() {
$('#dvAddEditImage').fadeIn(300);
$("#dvAddImage").html("<img src=\"images/loading.gif\" alt=\"Loading...\" title=\"Loading...\" />");
$("#dvAddImage").fadeIn(300);
$("#dvAddImage").html("<iframe id=\"iframeUpload\" src='utilities/UploadPOD.aspx'></iframe>");
Session["Session"] = "Upload";
}
我将 Session 添加到 Page_Load。但是现在每次都创建会话,这不是我需要的。
protected void Page_Load(object sender, EventArgs e)
{
Session["Session"] = "Upload";
}
}
然后在上传文件中我需要检查点击了哪个按钮:
if (fuUpload.HasFile)
{
string JobType = Convert.ToString(Session["Session"]);
Session["Session"] = null;
if (JobType == "Upload")
{
}
else
{
}
}
也许使用会话不是正确的方法?如何在不同的代码文件之间传递值?
编辑
Ok 添加了隐藏字段:
<asp:HiddenField ID="hfSession" runat="server" Value="Upload" />
并添加到上传按钮:
function ShowUploadImage() {
$('#dvAddEditImage').fadeIn(300);
$("#dvAddImage").html("<img src=\"images/loading.gif\" alt=\"Loading...\" title=\"Loading...\" />");
$("#dvAddImage").fadeIn(300);
$("#dvAddImage").html("<iframe id=\"iframeUpload\" src='utilities/UploadPOD.aspx'></iframe>");
document.getElementById('<%= hfSession.ClientID %>').value = "Upload";
}
那么我如何在其他页面文件中调用这个隐藏字段。这2个文件没有联系,那么隐藏字段的值怎么传呢?
【问题讨论】:
-
你为什么不向这个上传页面发送一个带有所需路径的参数?像这样创建你的 iframe:
<iframe id=\"iframeUpload\" src='utilities/UploadPOD.aspx?targetPath=X'></iframe>然后使用这个参数生成一个hidden字段...... -
"每次加载页面时都会创建会话,因此无法正常工作。"它不应该。还有很多方法可以通过触发器。例如缓存、cookies,并在页面之间将其作为参数传递......
-
@DontVoteMeDown UploadPOD.aspx 是目标路径。其他上传按钮使用相同的路径,所以我需要一种方法来检查点击了哪个上传按钮
-
@JaredT 我只希望在单击上传按钮时创建会话。如果每次加载页面时都会创建它,那么我无法判断点击了哪个上传按钮
-
只需在表单中添加一个隐藏字段并在单击按钮时填充它,并使用一个标识符告诉您它是哪个按钮。您可以检查该服务器端并做出相应的反应。
标签: javascript c# jquery asp.net session