0

以前は、fineuploader ajax アップロードを処理する ZF コントローラーを使用していました。コードは単純でした:

$adapter = new Zend_File_Transfer_Adapter_Http();
        $filename = uniqid();
        $adapter->addFilter('Rename', APPLICATION_PATH . "/../public/temp-images/" . $filename);
        $adapter->addValidator('Size', false, array("max" => "2MB"));
        $adapter->addValidator('isImage', false);
        if ($adapter->receive()) {
            // Get mime type
            $finfo = finfo_open(FILEINFO_MIME_TYPE);
            $mimeType = finfo_file($finfo, APPLICATION_PATH . "/../public/temp-images/" . $filename);
            finfo_close($finfo);

            preg_match('/(.*)\/(.*)/', $mimeType, $matches);
            $extension = '.' . $matches[2];

現在、Symfony2 を使用してリファクタリングしていますが、同じことを行うのが困難です。これは私がこれまでに持っているものです:

$form = $this->createFormBuilder()
    ->add('qqfile', 'file', array('constraints' => new File(array('maxSize' => '2M'))))
    ->getForm();


    if ($form->isValid()) {
       die('yes');
    } else {
       die('no');
    }

これは、ブラウザから送信されるものです。

------WebKitFormBoundaryYPzt2RqJ6W4awSFp Content-Disposition: フォーム データ。名前="イカ"

b977c4b2-0edb-486b-aa86-4558275598aa ------WebKitFormBoundaryYPzt2RqJ6W4awSFp Content-Disposition: フォームデータ。name="qqtotalfilesize"

14092 ------WebKitFormBoundaryYPzt2RqJ6W4awSFp Content-Disposition: フォームデータ; 名前="qqfile"; filename="ae35e28.png" コンテンツ タイプ: 画像/png

------WebKitFormBoundaryYPzt2RqJ6W4awSFp--

POSTされたデータにはフォームの名前が含まれていないため、フォームが検証されないことは確かです。実際には、フォーム全体を検証する必要はなく、アップロードされたファイルだけを検証する必要さえありません (ここではSymfony2: upload a file using a file upload plugin のように) が、検証をどのように使用すればよいでしょうか?

4

1 に答える 1