5

ファイルのアップロードには、 Blueimp jQuery-File-Uploadライブラリの基本バージョンを使用します。PHP フレームワークでは、この JavaScript ライブラリは、「server/php」ディレクトリにある PHP クラス「index.php」の実行に依存しています。チュートリアル ページに示されているように、「アクション」はそのディレクトリを指す必要があります。

このライブラリをSymfony2アプリケーションで使用する場合、 「server/php」ディレクトリはどこに配置する必要がありますか? どのパスを使用すればよいですか? 実際にそれを機能させる方法は?

PS: Punkave の「symfony2-file-uploader-bundle」のような Symfony2 バンドルがあることは知っていますが、チュートリアルに欠けているものがあり、Symfony2 フォームに再発したくありません-

4

1 に答える 1

6

jquery プラグインのコンテンツを に配置しweb/bundles/<your bundle name>/js/jquery-file-uploadます。次に、次の場所にある index.php ファイルを探すようにスクリプトを構成します (オプション/bundles/<your bundle name>/js/jquery-file-upload/server/php/index.phpの構成を確認します) 。

もちろん、その index.php ファイルを変更して、ユーザーがログインしているかどうか、および適切な権限を持っているかどうかを確認する必要があります。

例として、これは私がテスト環境で行ったことです。

このアクションをコントローラーに追加しました。

/**
 * @Route("/test/jquery-file-upload")
 * @Template("<your bundle name>:Default:test-jquery-file-upload.html.twig")
 */
public function testJqueryFileUploadAction()
{
    return array();
}

そして、私はこのテンプレートを作成しました:

<input id="fileupload" type="file" name="files[]" data-url="{{ asset('bundles/<your bundle name>/jquery-file-upload/server/php/index.php') }}" multiple>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<script src="{{ asset('bundles/<your bundle name>/jquery-file-upload/js/vendor/jquery.ui.widget.js') }}"></script>
<script src="{{ asset('bundles/<your bundle name>/jquery-file-upload/js/jquery.iframe-transport.js') }}"></script>
<script src="{{ asset('bundles/<your bundle name>/jquery-file-upload/js/jquery.fileupload.js') }}"></script>
<script>
$(function () {
    $('#fileupload').fileupload({
        dataType: 'json',
        done: function (e, data) {
            $.each(data.result, function (index, file) {
                $('<p/>').text(file.name).appendTo(document.body);
            });
        }
    });
});
</script>
于 2012-08-27T11:50:36.660 に答える