我的页面中有一个ContentTemplate和UpdatePanel内的多视图。在多视图中,我有两个视图。在其中一个视图中,我有一个文件上传控件,如下所示。
<tr id="Tr10" height="22px" runat="server" >
<td colspan="3"><asp:Label ID="Label5" runat="server" Text="Upload approval document:"></asp:Label>
<asp:FileUpload ID="uplDocument" runat="server" onclick="javascript:shouldsubmit=true;"/>
<asp:Button ID="btnSaveDoc" runat="server" Text="Save" onkeyup="javascript:shouldsubmit=true;"/> </td>
</tr>
<tr><td><asp:Label ID="lblDoc" runat="server" Text="Document:"></asp:Label>
<asp:LinkButton ID="lnkDoc" runat="server" PostBackUrl="~/SetupStudentFeeRequestApproval.aspx"></asp:LinkButton>
</td></tr>我的要求是上传文件的路径应该显示在lnkDoc中。但文件没有上传。我遗漏了什么?
发布于 2013-11-11 19:17:13
有点晚了,但我自己今天也有问题,想和大家分享答案。
基本上,input type="file"控件(也就是由asp:FileUpload控件呈现的html )不能在回发中持久化状态。
这是一个安全考虑因素,旨在防止从用户计算机检索其他文件的尝试--从本质上说,持久化状态的唯一方法是存储文件路径并在页面重新加载时将其还原到文件上载--这允许输入不同的路径(可能会进入用户计算机上的任何文件),因此浏览器会阻止这种行为。
当您提到在下一个视图中显示文件路径时,我不确定您想要对该文件做什么,但是,如果您正在这样做,因为您计划在稍后的过程中上传该文件,那么您唯一能做的就是在用户单击btnSaveDoc时将该文件上传到临时文件夹,然后在需要时使用它。
希望这能有所帮助。
https://stackoverflow.com/questions/16294305
复制相似问题