9

Win7/Apache 2.2/ZendStudio 環境で Symfony プロジェクトに取り組んでいますが、ファイルのアップロードが正常に機能しません。

私の目標は、( http://symfony.com/doc/current/cookbook/doctrine/file_uploads.htmlにある記事に基づいて)任意の数の「ドキュメント」を含むことができる新しいエンティティをユーザーが作成できるようにすることです。「コレクション」タイプの 1 つのフィールドを含むフォーム タイプがあります ( http://symfony.com/doc/current/cookbook/form/form_collections.htmlにある記事に基づく)。ここまでは順調ですね。jQuery を介して、正常に機能するサブフォームとして任意の数のフォームを追加できます。しかし、フォームを送信すると、非常に頻繁に (常にではありません!)、次の例外が発生します。

Warning: rename(C:/Programming/Servers/Apache2.2/htdocs/Symfony/app/cache/dev/doctrine/orm/Proxies\__CG__MyMainBundleEntityRecruiter.php.507bf02e30df69.85090364,C:/Programming/Servers/Apache2.2/htdocs/Symfony/app/cache/dev/doctrine/orm/Proxies\__CG__MyMainBundleEntityLecture.php): Zugriff verweigert (code: 5) in C:\Programming\Servers\Apache2.2\htdocs\Symfony\vendor\doctrine\orm\lib\Doctrine\ORM\Proxy\ProxyFactory.php line 194

Zugriff verweigertは、アクセスが拒否されたことを表すドイツ語です。奇妙なことに、ファイルの名前が変更され、正しい場所に保存されているようです。

この例外が発生するのはなぜですか?それは私の環境と関係がありますか?どうすれば修正できますか? この問題はSymfony Warning : rename (../app/cache/dev , ../app/cache/dev_old ) : Access Denied に関連していると思います。(Code : 5)ですが、別のコンテキストで発生するのと同じかどうかはよくわかりません。ただし、このリンクで説明されている問題にも遭遇します。

前もって感謝します。

4

3 に答える 3

7

私は最近、まったく同じ問題に直面しています。なぜ問題が起きているのかよくわかりませんが、Doctrine がプロキシ クラスを生成しようとしているプロセスのステップから問題が発生しています。

config.yml ファイルで、Doctrine 構成の ORM セクションの下で、値をauto_generate_proxy_classesから%kernel.debug%に変更しましたfalse。変更を行ってからしばらく遊んでいますが、それ以来問題を再現できませんでした。

于 2013-03-07T21:22:54.497 に答える
1

ファイルの名前を変更するファイルに移動し、Windows 互換の名前変更機能に置き換えます

private function renameWindowsCompatible($oldfile,$newfile) {
    try {
        rename($oldfile,$newfile);
    } catch(\Exception $e) {
        if (copy($oldfile,$newfile)) {
            unlink($oldfile);
            return TRUE;
        }
        return FALSE;
    }
    return TRUE;
}
于 2016-10-18T01:25:57.667 に答える