0

Symfony2 PunkAve FileUpload Bundleは機能しますが、BlueImp の UploadHandler 内で返されるため、ファイル名を取得できません。

<?php
/**
 *
 * @Route("/upload")
 * @Template()
 */
public function uploadAction(Request $request)
{
    $editId = $this->getRequest()->get('editId');
    if (!preg_match('/^\d+$/', $editId))
    {
        throw new Exception("Bad edit id");
    }

    $em = $this->getDoctrine()->getManager();
    $entity = $em->getRepository('Foobar:Foobar')->find($editId);

    $destinationFolder = 'test';

    $fileUploader = $this->get('punk_ave.file_uploader');

    $imageName = $fileUploader->handleFileUpload(array('folder' => $destinationFolder ));

    $imageEntity = new \Foobar\Entity\Image();
    $imageEntity->setImage($imageName);
    $imageEntity->setFolder($destinationFolder);
    $em->persist($media);
    $em->flush();

    return true;
}

上記の例では、画像をアップロードします。

変数 $imageName は、fileUploadHandler をトリガーします。イメージ名を保存する必要がある次の行に行かないのはなぜですか。

どうすれば Symfony で動作させることができますか? 彼がアップロードを処理した後、ファイル名をエンティティに保存するには?

4

1 に答える 1

1

彼らがドキュメントで述べたように:応答は BlueImp の UploadHandler クラスによってネイティブ PHP で生成されるため、handleFileUpload は返されませんhandleFileUpload最後にexit(0);あるので、それを呼び出すと、プロセス全体がそこで停止します。ファイルをデータベースに保存する場合は、リクエストを処理するアクションで実行する必要があります(ドキュメントの例からは になりますeditAction)。また、ドキュメントが言ったように、getFiles を使用してファイル名のリストを取得し、データベースにミラーリングします。フィット

于 2013-09-19T11:07:54.680 に答える