0

ファイルのアップロードに関するこの記事を読んで適用しようとしていますが、問題があります。これは言われています:

if ($form->isValid()) {
    $em = $this->getDoctrine()->getEntityManager();

    $document->upload();

    $em->persist($document);
    $em->flush();

    $this->redirect(...);
}

コントローラに入れる必要があり、ここにupload関数の定義があります

public function upload()
{
    // the file property can be empty if the field is not required
    if (null === $this->file) {
        return;
    }

    // we use the original file name here but you should
    // sanitize it at least to avoid any security issues

    // move takes the target directory and then the target filename to move to
    $this->file->move($this->getUploadRootDir(), $this->file->getClientOriginalName());

    // set the path property to the filename where you'ved saved the file
    $this->path = $this->file->getClientOriginalName();

    // clean up the file property as you won't need it anymore
    $this->file = null;
}

しかし、これはどこに置くべきですか?コントローラーで、それを呼び出すアクションの上でエラーが発生Fatal error: Call to undefined method...しました。また、別のクラスとファイルに配置し、使用して名前空間を追加しようとしましたが、エラーは残ります。どこが間違っているのか教えていただけませんか?:)

4

1 に答える 1

1

コードを注意深く見ると、アップロードがドキュメントオブジェクトの関数として呼び出されていることがわかります。

$document->upload();

つまり、Documentエンティティクラスでそれが進むべき場所です

于 2012-08-24T08:59:07.510 に答える