Back to top

Autore Topic: File Upload  (Letto 1397 volte)

Offline d.abstego

  • Nuovo arrivato
  • *
  • Post: 13
  • Sesso: Maschio
  • Semplicità Creatività Innovazione
    • Mostra profilo
File Upload
« il: 13 Mag 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!


Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
Re:File Upload
« Risposta #1 il: 13 Mag 2016, 10:41:47 »
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:
Codice: [Seleziona]
../.../../../../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.

Offline d.abstego

  • Nuovo arrivato
  • *
  • Post: 13
  • Sesso: Maschio
  • Semplicità Creatività Innovazione
    • Mostra profilo
Re:File Upload
« Risposta #2 il: 13 Mag 2016, 10:56:06 »
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
« Ultima modifica: 13 Mag 2016, 11:13:19 da d.abstego »

Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
Re:File Upload
« Risposta #3 il: 13 Mag 2016, 11:14:28 »
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

Offline d.abstego

  • Nuovo arrivato
  • *
  • Post: 13
  • Sesso: Maschio
  • Semplicità Creatività Innovazione
    • Mostra profilo
Re:File Upload
« Risposta #4 il: 13 Mag 2016, 11:57:05 »
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  ::)  ...
« Ultima modifica: 13 Mag 2016, 12:02:48 da d.abstego »

 



Web Design Bolzano Kreatif