1

ファイルのアップロードを実行しようとしていますがmove_uploaded_file、ファイルの移動先を示すルートを生成するのに苦労しています。私のルーティングファイル(バンドル内から)には、次のものがあります。

endorsement_pics:
    pattern:  /images
    defaults: { _resource: EndorseMeEndorsementBundle/Resources/public/images/endorsement_images }

そして私は:

        $url = $this->get('router')->generate('endorsement_pics');

これは、リテラル URL www.example.com/endorsement/images を生成します

そして機能

            move_uploaded_file($_FILES['endorsement_image']['tmp_name'], $url."image1.jpg");

エラーが表示されます:

                Warning: move_uploaded_file(/newsite/web/app_dev.php/endorsement/imagesimage1.jpg) [<a href='function.move-uploaded-file'>function.move-uploaded-file</a>]: failed to open stream: No such file or directory in /home/content/24/9254124/html/newsite/src/EndorseMe/EndorsementBundle/Controller/DefaultController.php line 20

何か案は?

4

2 に答える 2

4

ファイルを URL に移動することはできません — ファイルシステム パスでなければなりません。これにルートを使用するのは間違っています。

webパブリックフォルダーにファイルをアップロードするには、次のようにします。parameters.ymlまず、アップロード ディレクトリ パスのパラメータを作成します。

parameters:
    upload_dir: %kernel.root_dir%/../web/uploads

次に、アップロードのパラメーターを使用します。

$uploadDir = $this->container->getParameter('upload_dir');
move_uploaded_file(
    $_FILES['endorsement_image']['tmp_name'], 
    $uploadDir . '/image1.jpg'
);
于 2012-10-20T17:12:54.847 に答える