0

ページの ContentTemplate と UpdatePanel 内にマルチビューがあります。マルチビュー内には、2 つのビューがあります。ビューの 1 つに、このようなファイル アップロード コントロールがあります。

<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 に答える