我在我的页面中的ContentTemplate和UpdatePanel中有一个mutliview。在多视图中,我有2个视图。在其中一个视图中,我有一个像这样的文件上传控件。
<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 中。但是文件没有上传。我错过了什么?
答案 0 :(得分:1)
有点晚了,但今天我自己也有问题,并且认为我会分享答案。
基本上,input type="file"
控件(也就是asp:FileUpload
控件呈现的html)无法在回发中保持状态。
这是一个安全考虑因素,旨在防止尝试从用户的计算机中检索其他文件 - 实质上,持久状态的唯一方法是存储文件路径并在页面重新加载时将其还原到文件上载 - 这允许是否有可能进入不同的路径(可能是用户计算机上的任何文件),因此浏览器会阻止此行为。
我不确定你想要对文件做什么,因为你提到在下一个视图中显示文件路径但是,如果你这样做是因为你打算在以后的过程中上传文件,那么你唯一能做的就是当用户点击btnSaveDoc时将文件上传到临时文件夹,然后在你需要的时候使用它。
希望这有帮助。