ASP Web サイトでアップロード機能を使用しています。だから私はファイル入力タイプを使用しています。ただし、このコントロールは、デフォルトのアップロード ボタンの参照と、Internet Explorer でファイルを選択した後にパスが表示されるテキスト ボックスを追加します。参照ボタンなどを表示したくないので、「ファイルを添付」ボタンを追加し、スクリプト「triggerFileUpload」関数を作成して、アップロードコントロールをクリックするようにしました。そのため、[ファイルを添付] ボタンをクリックすると、ファイル ウィンドウの参照が表示され、アップロードするファイルを選択できます。しかし、送信ボタンをクリックすると、ファイルのアップロード コントロールがリセットされ、ファイルがアップロードされません。エラーは、ボタンをクリックして送信すると、ファイル コントロールが null になることです。Internet Explorer でのみ発生します。だから、これを解決するのを手伝ってください。以下は、IEで直面している問題を示すコードです。asp:FileUpload コントロールも使用すると、同じ問題が発生します。(私の計画は、ファイル コントロールを非表示にして、ファイルの添付ボタンのみをユーザーに表示することです)。
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
function triggerFileUpload() {
document.getElementById("FileUploaddd2").click();
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<input id="Button2" type="button" onclick="triggerFileUpload()" value="Attach a File" />
<input type="file" id="FileUploaddd2" runat="Server" />
<br />
<asp:Button ID="btnSubmit" runat="server" BorderColor="Black"
BorderStyle="Solid" BorderWidth="1px"
Text="Submit" />
</div>
</form>
</body>
</html>
サンプルコードのダウンロードはこちら
アップデート
私が直面しているエラーを再現するには
1)ダウンロードリンクで指定したプロジェクトを実行します
2) Internet Explorer の任意のバージョンでテストする
3) [ファイルの添付] ボタンをクリックします (参照ではなく、false を表示するためのものです。ここでは例としてのみ示しています)。
4) 表示されるウィンドウでファイルを参照し、[OK] をクリックします。
5) [保存] ボタンをクリックします。
保存ボタンをクリックすると、btnsave_Click関数がトリガーされるはずですが、トリガーされません.保存ボタンをもう一度クリックすると、btnsave_Clickがトリガーされます.しかし、今回はアップロードコントロールでファイルが選択されていません.ブラウズ コントロールも (これを表示するためだけに、ブラウズ コントロールを表示可能にしました)
では、なぜ btnsave_Click が初めてトリガーされないのか疑問に思うでしょうか?