0

我的页面中的 ContentTemplate 和 UpdatePanel 中有一个多视图。在多视图内部,我有 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中。但是文件没有上传。我错过了什么?

4

1 回答 1

1

有点晚了,但今天我自己遇到了这个问题,我想我会分享答案。

基本上,input type="file"控件(又名控件呈现的 html asp:FileUpload)不能在回发中保持状态。

这是一个安全考虑,旨在防止尝试从用户的计算机中检索其他文件 - 本质上,保持状态的唯一方法是存储文件路径并在页面重新加载时将其恢复为文件上传 - 这允许输入不同的路径(可能指向用户计算机上的任何文件),因此浏览器会阻止此行为。

当您提到在下一个视图中显示文件路径时,我不确定您要对文件做什么,但是,如果您这样做是因为您计划稍后在此过程中上传文件,那么唯一的您可以做的是在用户单击 btnSaveDoc 时将文件上传到临时文件夹,然后在您需要时使用它。

希望这可以帮助。

于 2013-11-11T19:17:13.917 回答