0

私はこのconfig.ymlを使用しています。

knp_gaufrette:
    adapters:
       uploaded_files:
            local:
                directory: "%kernel.root_dir%/../web/uploads"
                create: true
    filesystems:
        uploaded_files:
            adapter:    uploaded_files
            alias:      uploaded_files

今、小枝ごとにアップロードされたファイルにアクセスしたいと思います。また、例えば:

<a href="{{ path('gaufrette_download', {system: 'uploaded_files', file: 'test.txt'}) }}>{{ 'Download' | trans }}</a>

ファイルには次のようなパスが必要です...

http://localhost/web/uploads/test.txt

ファイルに直接アクセスしたい。コントローラー (アクション) はありません。

これは可能ですか?何か案は?

4

1 に答える 1

2

フォルダーが Web アクセス可能な場合 (つまりhttp://localhost/web/uploads/test.txt、アドレス バーに URL を入力してファイルをダウンロードできる場合)、必要なことは、ルートgaufrette_downloadをそのパスにマップすることだけです。バンドルは次のrouting.ymlようになります ( がないことに注意してくださいdefaults: { controller: ... })。

gaufrette_download:
    path: /web/uploads/{file}

が適切に定義されている場合.htaccess、Web サーバーはアプリケーションにアクセスする代わりにファイルを提供する必要があります。たとえば、スラッシュを許可するために、の要件を追加する必要があるかもしれませんfile(これについては symfony クックブックを検索してください)。

コントローラー (アクション) の作成を省略したい場合は、リクエストが route に一致したときにトリガーされるイベント リスナーを作成することもできます。

于 2014-03-17T10:12:43.990 に答える