ファイル選択は参照ボタンを使わなければ正しく動作しない

よくできてます…。Flashからファイルのアップロードをやる最も簡単な方法を考えて、FlashからはJavaScriptを呼ぶだけにしよう!ということで、JavaScriptでちょいちょいと書いてみましたが、当然駄目でした。

JavaScript部
<script language="JavaScript">
<!--
    function selectFile() {
        document.FlashFileUploadForm.file.click();
    }

    function submitForm() {
        document.FlashFileUploadForm.submit();
    }
//-->
</script>

#HTML部(Struts)
<html:form action="FlashFileUploadAction.do"
         enctype="multipart/form-data">
    <html:file property="file" />
</html:form>

#ActionScript部
#ファイル選択ボタン
on(click) {
    getURL("javascript:selectFile()");
}

#アップロードボタン
on(click) {
    getURL("javascript:submitForm()");
}

結果は、”アクセスが拒否されました”となり、フォームをsubmitできません。一見Flashのボタンを押すとちゃんとファイル選択ダイアログが出て、フォームにパスが設定されるのですが、実際に送信しようとするとエラーになります。画面上にある”参照..."ボタンを押す事は必須のようです。実際に書いたHTMLはさらにタチが悪く(笑)<div style="display:none">で<html:file>タグが囲まれていました。見た目じゃファイル選択のテキストエリアが見えないのに、ちゃんとファイルの選択ダイアログは出るし、送信もできちゃう。そんなのを求めてみたんですけどね、無駄でしたっ!FlexとColdFusionを使えばファイルのアップロードもできるようですが、ColdFusionそんなに無いですから!!