Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Apertura file esterni alla root del sito

    Salve a tutti! Sono alle prime armi con il php e sto avendo dei problemi nell'utilizzo dei file. Per fare le prove uso MAMP su Snow Leopard. Il problema è che non riesco ad usare o a riferirmi ad alcun file all'esterno della root del server (nel caso di MAMP il nome è "htdocs"). Nel mio caso ho dei percorsi di file (salvati in svariate cartelle nel HDD del server) in un database MySQL. Il mio script va a leggere questi percorsi nel DB e poi dovrebbe mostrare un listato di tutti i file presenti con la possibilità poi di aprirli nel browser (ovviamente se sono supportati). C'è un modo per fare tutto questo?
    Grazie mille per l'aiuto!


    Andrea

  2. #2
    non si puo fare....il web server puo leggere solo dalla document root...quindi da htdocs nel tuo caso...non puoi accedere ai file presenti in altre cartelle, al di fuori della document root.....e poi nn avrebbe senso
    V.I.S.T.A. --> Virus Inside, Switch To Apple

  3. #3
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230

    Re: Apertura file esterni alla root del sito

    Originariamente inviato da DarkDragon85
    Salve a tutti! Sono alle prime armi con il php e sto avendo dei problemi nell'utilizzo dei file. Per fare le prove uso MAMP su Snow Leopard. Il problema è che non riesco ad usare o a riferirmi ad alcun file all'esterno della root del server (nel caso di MAMP il nome è "htdocs"). Nel mio caso ho dei percorsi di file (salvati in svariate cartelle nel HDD del server) in un database MySQL. Il mio script va a leggere questi percorsi nel DB e poi dovrebbe mostrare un listato di tutti i file presenti con la possibilità poi di aprirli nel browser (ovviamente se sono supportati). C'è un modo per fare tutto questo?
    Grazie mille per l'aiuto!


    Andrea
    A meno che non ci sia il safe_mode o il open_basedir impostati, puoi aprire qualsiasi file al quale l'utente con cui gira apache ha accesso in lettura; basta passare alla funzione che usi il percorso giusto.

  4. #4
    Mi sento un po' confuso dalle vostre risposte :P
    Ho controllato tramite phpinfo il open_basedir (con valore: no value) e il safe_mode (con valore: off) e dovrebbero essere apposto.
    Io ho provato ad usare questo codice per fare una prova, ma il tentativo è fallito miseramente:
    Codice PHP:
    echo [img]/Macintosh HD/Users/myhome/img.jpg[/img
    Ho provato anche quest'altro codice:
    Codice PHP:
    echo [img]file:///Macintosh HD/Users/myhome/img.jpg[/img] 
    ma anche così continuo non vedere niente.
    Qualche consiglio?
    Grazie mille ancora per l'aiuto



    Originariamente inviato da mr.click
    .....e poi nn avrebbe senso
    Capisco che può sembrare strano ma non posso fare diversamente. Ho installato nella struttura sanitaria dove lavoro un server PACS, cioè un server dove vengono immagazzinate tutte le immagini provenienti dalle varie macchine medicali (risonanza magnetica, radiologia tradizionale, mammografo, ecc ecc) utilizzando un DB MySQL per associare ad ogni paziente le proprie immagini tramite il percorso delle immagini stesse, che sono invece contenute in una cartella nel HDD (ovviamente esterna alla root del sito internet che vorrei sviluppare). Quello che vorrei fare io è dare la possibilità ai pazienti di potersi vedere le immagini e i referti comodamente seduti a casa propria.

    Grazie mille ancora



    Andrea

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    539
    secondo me una cosa del genere diventa anche pericolosa, perchè se posso avere accesso ad una foto all'esterno della root, allora posso avere accesso a qualsiasi file!
    Perchè non copi le foto all'interno della root, in apposite cartelle, e poi mostri quelle agli utenti?

  6. #6
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    Originariamente inviato da DarkDragon85
    Io ho provato ad usare questo codice per fare una prova, ma il tentativo è fallito miseramente:
    Codice PHP:
    echo [img]/Macintosh HD/Users/myhome/img.jpg[/img
    Ci credo che il tentativo ha fallito.
    Hai postato questo messaggio nel forum php, quindi pensavo ti interessasse aprire i file con i metodi del php: fopen/fread etc.
    Gli attributi del html che metti tu (src) effettivamente non possono funzionare se i percorsi non sono nella document_root.

    Comunque ci sono diversi metodi per fare quello che vuoi: se i file non sono enormi e la ram te lo permette, li puoi leggere con php e inviarli al browser. O copiare temporaneamente con php nella documento root.
    O creare dei link simbolici di sistema nella document root. O creare degli alias di directory al livello apache.

  7. #7
    Originariamente inviato da freeman74
    secondo me una cosa del genere diventa anche pericolosa, perchè se posso avere accesso ad una foto all'esterno della root, allora posso avere accesso a qualsiasi file!
    Perchè non copi le foto all'interno della root, in apposite cartelle, e poi mostri quelle agli utenti?
    Le immagini sono circa 10000 e usano già 1 TB sarebbe un spreco di spazio inutile doverle copiare in un altro percorso


    Originariamente inviato da bubi1
    Ci credo che il tentativo ha fallito.
    Hai postato questo messaggio nel forum php, quindi pensavo ti interessasse aprire i file con i metodi del php: fopen/fread etc.
    Gli attributi del html che metti tu (src) effettivamente non possono funzionare se i percorsi non sono nella document_root.

    Comunque ci sono diversi metodi per fare quello che vuoi: se i file non sono enormi e la ram te lo permette, li puoi leggere con php e inviarli al browser. O copiare temporaneamente con php nella documento root.
    O creare dei link simbolici di sistema nella document root. O creare degli alias di directory al livello apache.
    Ecco non lo sapevo che con img non funzionasse. Io li devo integrare in funzioni fopen e cose simili, avevo solo fatto una prova per vedere se riuscivo a vedere file esterni.

    Con questo codice sono riuscito a leggere un file esterno e a visualizzarlo sul browser:
    Codice PHP:
    $immagine "file:///Volumes/Macintosh HD/Users/myhome/img.jpg";  
    $fd fopen$immagine"rb" 
       or die(
    "Non posso aprire il file");  
      
    $File fopen("latest.jpg","wb");
      
    while (!
    feof($fd) ) { 
     
    $contents fread($fd4096); 
     
    fwrite$File$contents ); 

     
    fclose$fd );  
    fclose$File ); 
      
    echo 
    "<img src=\"latest.jpg\" />"
    Questo modo però mi sembra un po' macchinoso quando un paziente vuole aprire una risonanza magnetica composta da circa 100 - 110 immagini; se poi ci sono due o tre pazienti che nello stesso momento vogliono vedere i loro esami, il povero server si deve copiare e poi cancellare (questo non è incluso nello script che ho messo prima :P ) 300 immagini nello stesso momento...

    bubi1 il server ha 6 GB di ram quindi credo (correggettemi se sbaglio) di poter leggere le immagini e poi inviarle al browser (come appunto mi suggerivi te), ma tramite php senza usare il tag <img> non so come fare (scusatemi sono niubbo lo so -.-' ), sapresti mica dirmi che tipo di funzione usare?

    Grazie mille davvero!!!

  8. #8
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    io ti consiglio di usare il mod_alias di apache.

    In pratica ti basta aggiungere nella config globale di apache roba tipo:

    Alias /cartella1/ /Macintosh HD/Users/myhome/ # se e' questo il percorso completo
    Alias /cartella2/ /Macintosh HD/Users/ciccio/
    Alias /cartella3/ /Macintosh HD/Qualcosaltro/
    ....


    e poi fare dei semplici [img]/cartella1/img.jpg[/img]

  9. #9
    Grazie mille bubi1, seguirò il tuo consiglio. Grazie mille davvero sei stato di grandissimo aiuto!
    Ciao ciao

    Andrea

  10. #10
    Scusate se faccio un post doppio ma mi è venuta in mente un'altra domanda (lo so che rompo :P ) e non posso modificare il primo post.

    Riguardo alla sicurezza l'alias di Apache come sono messi? Siccome vado a trattare dati sensibili, non vorrei che per facilitarmi il lavoro vado ad intaccare la sicurezza...
    Grazie mille ancora e scusate se continuo a scassarvi


    Andrea

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.