Joomla.it Forum
Joomla! 3 => Joomla! 3 => : d.abstego 13 May 2016, 09:51:43
-
Ciao A tutti,
Ho un piccolo problema. Ho implementato uno script PHP per effettuare l'upload Multiplo di di file PDF su server. Funziona correttamente ma se cerco di effettuare l'upload degli stessi file su un path diverso da quello dove ho installato Joomla il server mi restituisce errore :
PHP Warning: copy(root/remote-mntIT/psa-attaches-repo/file.pdf): failed to open stream: No such file or directory in ..... ecc.ecc
in pratica lo script si trova in
/var/www/html/joomlasite/components/com_pers/script.php
e vorrei fare l'upload ad un livello differente da quello dove è installato joomla......ad esempio in :
/root/document_upload/
Sapete darmi una dritta?!.... :-[
Grazie!
-
Credo che valga la regola delle path relative. Se usi le path relative e vuoi uscire dal percorso corrente devi salire su di uno o più livelli con "../", altrimenti ti dirà come in questo caso che la path non esiste. Quindi:
../.../../../../dove/voglio/andare/
Altrimenti dovrai usare le path assolute: https://www.linux.com/blog/absloute-path-vs-relative-path-linuxunix
Non fraintendere, /root/document_upload/ è una path assoluta, solo che tu nel codice l'hai scritta così:
root/remote-mntIT/psa-attaches-repo/ trasformandola un una path relativa.
-
Non so se non ho capito io la tua risposta (che comunque mi ha già aperto gli occhi sul concetto di path relativo...grazie) oppure mi sono spiegato io nell'esporre il mi problema.
Attualmente il mio script php si trova nel seguente path assoluto :
/var/www/html/PSA/components/com_psa_area_clienti/Documentale_000/Documentale_000/upload_fatture.php
Nello script php, quando faccio la mappatura del path dove scrivo il file funziona fino a che rimango all'interno della struttura del sito. Ad esempiole seguenti mappature funzionano:
components/com_psa_area_clienti/Documentale_000/
components/com_psa_area_clienti/
images/
se solo volessi tornare indietro nell'alberatura ottengo l'errore che ho indicato. Ad esempio le seguenti mappature NON funzionano:
/var/www/html/
/var/www/
Sono sicuro che non è un problema di permiossion in quanto ho già fatto la verifica opportuna.
:-[ ... quindi sono in alto mare
-
nono le permission non c'entrano nulla: l'errore parla chiaro, il percorso non esiste!!!
Questo tipo di path relative (components/...) funzionano perché uno script che gira in joomla ha come riferimento la path in cui si trovano i file index.php, joomla.xml, configuration.php, ecc... (la root di joomla per intenderci). Se provi a salire su di un solo livello riesci a scrivere? Occhio che devi salire su di un livello e basta, senza entrare in alcuna cartella!
Ad es. sposta il file in "../" e non in "../qualcosa/"
Per il discorso delle path assolute mi sarei aspettato che le mappature che hai provato (/var/ecc...) funzionassero o che restituissero quantomeno un altro tipo di errore
-
Ho provato a mappare il path usando ../ ed in effetti sono riuscito a scrivere ad un livello superiore della cartella principale di joomla........
provando con ../tmp ho ottenuto un buon risultato :
-var
--www
---html
----PSA -> directory joomla
----tmp -> con il path ../tmp sono riuscito a scrivere
-root
-root
--remote-mntIT
---psa-attaches-repo
ora il mio obbiettivo è arrivare a root mappando il path in questo modo :
$path = '../../../../root/remote-mntIT/psa-attaches-repo/';
ed il log ora è differente.
failed to open stream: Permission denied in
Diciamo che sono sulla strada buona ::) ...