2012-10-15 13 views
7

Sto lavorando a un progetto Symfony in un ambiente Win7/Apache 2.2/ZendStudio e ho qualche problema nel far funzionare correttamente i miei caricamenti di file.Errore di "Accesso negato" durante la chiamata "rinomina" durante il caricamento di file in Symfony

Il mio obiettivo è consentire all'utente di creare una nuova entità che può contenere molti "Documenti" arbitrari (in base all'articolo trovato a http://symfony.com/doc/current/cookbook/doctrine/file_uploads.html). Ho un tipo di modulo contenente un campo di tipo 'raccolta' (basato sull'articolo trovato su http://symfony.com/doc/current/cookbook/form/form_collections.html). Fin qui tutto bene. Tramite jQuery posso aggiungere arbitrariamente molti moduli come sottomaschermi che funzionano bene. Ma quando presento la mia forma, molto spesso (! Ma non sempre) ottengo la seguente eccezione:

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 è il tedesco per Accesso negato. Stranamente, i file sembrano essere rinominati e salvati comunque nella giusta posizione.

Perché ottengo questa eccezione, ha qualcosa a che fare con il mio ambiente e come posso risolverlo? Immagino che questo problema sia legato a Symfony Warning : rename (../app/cache/dev , ../app/cache/dev_old) : Access Denied . (Code : 5), ma non sono sicuro che sia lo stesso che accade in un altro contesto. Incontro anche il problema descritto in questo collegamento, però.

Grazie in anticipo.

+0

Ho lo stesso problema. :-( – darkangel

risposta

7

trovato questo mentre cerca di stessa risposta, che sembra essere un windows + problema Dottrina

Doctrine Ticket with more detailed info

TLDR: Fondamentalmente il proxy sta cercando di rinominare un file questo è ancora in uso, funziona in linux ma non sempre su Windows.

+0

Chiunque abbia idee di risoluzione? Ho visto su questo post che è stato corretto in Doctrine 2.5, ma mentre lo eseguo (su Symfony 2.6.1) ottengo ancora l'errore. Forse aggiorno il Symfony o cosa? –

+0

D'accordo, dice fisso 2.5 ma sto ancora ricevendo questo su Doctrine 2.5.4 in XAMPP e Windows 10 x64 ... :( – Egg

4

Recentemente ho riscontrato lo stesso esatto problema. Non ho davvero una buona idea del perché il problema stia accadendo, ma il problema viene da una fase del processo in cui Doctrine sta cercando di generare classi proxy.

Nel mio file config.yml, nella sezione ORM della configurazione Dottrina, ho cambiato il valore della auto_generate_proxy_classes%kernel.debug%-false. Ci ho giocato per un po 'da quando ho apportato la modifica e da allora non sono stato in grado di riprodurre il problema.

0

Vai alla scheda che rinomina il file, poi sostituirlo con una funzione di Windows rename compatibile

private function renameWindowsCompatible($oldfile,$newfile) { 
    try { 
     rename($oldfile,$newfile); 
    } catch(\Exception $e) { 
     if (copy($oldfile,$newfile)) { 
      unlink($oldfile); 
      return TRUE; 
     } 
     return FALSE; 
    } 
    return TRUE; 
} 
+0

Questa è solo una soluzione temporanea per il venditore, non so se la dottrina considererà questo aggiorna presto – PauAI

Problemi correlati