質問

多くのajaxを使用するgrailsを使用してWebアプリケーションを作成しています。ajaxを使用してファイルアップロードを実装したいです。ファイルアップロードにajaxを使用する方法がわかりません。サンプルGSPコードは次のとおりです。

<!-- code for file upload form-->
<div id="updateArea">

</div>

で試してみました。アップロード後、結果で「updateArea」を更新します。結果として、アップロードしたファイルの詳細を表示する予定です。

役に立ちましたか?

解決

Ajax経由でファイルをアップロードすることは実際には不可能です。非表示のiframeを使用してバックグラウンドでファイルをアップロードし、応答(iframe内にある)を評価するか、アップロードの完了後に別のajax呼び出しを実行できます。

<g:form name="upload-form" action="upload" method="post" enctype="multipart/form-data" target="hidden-upload-frame">
    File: <input type="file" name="myFile" />
    <button type="submit">Upload</button>
</g:form>

<iframe id="hidden-upload-frame" name="hidden-upload-frame" style="display: none" onload="onUploadComplete">
</iframe>

<script type="text/javascript">
    function onUploadComplete(e) {
        // Handle upload complete
        alert("upload complete");
        // Evaluate iframe content or fire another ajax call to get the details for the previously uploaded file
    }
</script>

もう1つのオプションは、iframeの代わりにフラッシュベースのアップロードメカニズムを使用することです(例: swfupload )。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top