コントロールを使用した参照とアップロードは、asp:FileUpload
完全に正常に機能しています。
しかし、それは2段階のプロセスです。まず、ファイルを参照して選択する必要があります。
シングルステップで動作させたいので、シングルステップにするために、次のコードを試しました:
protected void Button1_Click(object sender, EventArgs e)
{
//to launch the hidden fileupload dialog
ClientScript.RegisterStartupScript (GetType(),
"hwa", "document.getElementById('fileupload').click();", true);
//Getting the file name
if (this.fileupload.HasFile)
{
string filename = this.fileupload.FileName;
ClientScript.RegisterStartupScript(GetType(), "hwa", "alert('Selected File: '" + filename + ");", true);
}
else
{
ClientScript.RegisterStartupScript(GetType(), "hwa", "alert('No FILE has been selected');", true);
}
}
このコードには、fileUpload
で呼び出されるコントロールが 1 つありますButton1_Click
。
理想的には、最初の行を実行し、次にファイル アップロード コントロールを表示し、ファイルを選択するかダイアログをキャンセルした後、フローは次の行に進む必要があります。しかし、全機能の実行が終了した後にダイアログが表示されます。
この非同期または予期しない実行フローif (this.fileupload.HasFile)
が原因で (ユーザーはまだファイルを選択するように求められていないため) false が返され、選択したファイル名が取得されません。
このコードを変更して、1 ステップでファイルをアップロードできますか? または、これを行う他の方法が可能な場合は?
注 -window forms
と を使用しないように依頼しThreads
ました。したがって、これら 2 つを使用した解決策は受け入れられません。