html/javascript/ajax クライアント側で Java Web サービスを開発しています。ユーザーが入力時にローカルのExcelファイルを提供し、それをサーバー側に送信する方法はありますか?
セキュリティの問題 (C:/fakepath) のためにファイルのパスを取得できず、ajax 要求を介して Excel ファイルの内容を渡すことはできないようです。
私の問題の解決策はありますか?
html/javascript/ajax クライアント側で Java Web サービスを開発しています。ユーザーが入力時にローカルのExcelファイルを提供し、それをサーバー側に送信する方法はありますか?
セキュリティの問題 (C:/fakepath) のためにファイルのパスを取得できず、ajax 要求を介して Excel ファイルの内容を渡すことはできないようです。
私の問題の解決策はありますか?
<form>
HTML のと<input>
タグを使用してファイルをアップロードする方法を知っていると思います。たとえば、次のようになります。
<form method="post" enctype="multipart/form-data" action="upload_script.php">
<input type="file" name="myfile" />
<input type="submit" value="Upload" />
</form>
これを非同期で行う秘訣は、タグで<iframe>
andtarget
属性を使用することです。次に例を示します。<form>
<form method="post" enctype="multipart/form-data" action="upload_script.php" target="myiframe">
<input type="file" name="myfile" />
<input type="submit" value="Upload" />
</form>
<iframe name="myiframe"></iframe>
フレームのサイズを 0x0 ピクセルにすることができるため、ユーザーはそこにあることを認識できません。フォームが送信されるとiframe
、スクリプト ページが読み込まれます。JavaScript を使用して親フレーム (元のウィンドウ) にコールバックし、アップロードが成功したか失敗したかなどを示すことができます。
通常の HTML アップロード メカニズムを使用してファイルをアップロードできます。
HTML は次のようになります。
<html>
...
Select a file to upload: <br />
<form action="UploadServlet" method="post"
enctype="multipart/form-data">
<input type="file" name="file" size="200" />
<br />
<input type="submit" value="Upload File" />
</form>
...
</body>
</html>
そして、アップロードを処理するための対応する jsp コード。ここで例を確認できます。
サーバー上に Excel ファイルがあれば、必要に応じて処理できます。
実際、私は新しい XMLHttpRequest バージョン 2 でこの問題を回避する方法を見つけました。
詳細については、これを参照してください