Recuperare immagini dal filesystem

di il
5 risposte

Recuperare immagini dal filesystem

Salve,
sto usando xampp per definire un database nel quale vorrei inserire immagini e video.
Leggendo in internet è poco conveniente salvarli come BLOB, ma è conveniente recuperarli dl filesystem.
Purtroppo non riesco a trovare la procedure, e io non essendo un esperto non so farlo.
Potreste aiutarmi?

5 Risposte

  • Re: Recuperare immagini dal filesystem

    Il giochino e' il seguente:
    0) si ragiona sempre in termini di path relativi rispetto ad una directory root che configurerai in qualche altro modo. Questo perche' se devi spostare i file, per un motivo qualunque, ad esempio perche' cambi disco, devi cambiare SOLO la configurazione
    1) sul db, salvi solo il path relativo (alla directory root) del file
    2) sulla pagina html inserisci un link di tipo <img> con un path relativo alla root del tuo web server . questo vuol dire che i due path relativi non e' detto che siano neccessariamente gli stessi, ma quello usato nel db potrebbe essere un sufisso (la parte finale) di quello usato nella pagina html
  • Re: Recuperare immagini dal filesystem

    Ho risolto. Dato che su internet non si trova la procedura ma solo genericità, la posto io.
    Bisogna premettere che si può accedere solo alla cartella htdocs di xampp, quindi i percorsi sono relativi sempre a quella cartella.
    Memorizza_percorso.php
    
    <?php
    $server="localhost";
    $user="root";
    $pass="";
    $dbN="Nome";
    
    $conn=new mysqli($server,$user,$pass,$dbN);
    if(!$conn){
    	die("Connessione fallita".mysqli_connect_error());
    }
    $percorso="/img/Immagine.jpg";
    $sql="INSERT INTO immagini(Percorso) VALUES('$percorso')";
    $risultato=mysqli_query($conn,$sql);
    echo $percorso;
    ?>
    Con questo codice ci si collega al database, si collega che sia andato a buon fine, si memorizza il percorso nella variabile $percorso,( come già detto prima img è una sottocartella di htdocs ->, C:\xampp\htdocs\Img, ma nel percorso si deve specificare solo img e il nome dell'immagine).


    Se ci si vuole accedere al contenuto invece:
    Accesso_immagine.php
    
    <?php
    $server="localhost";
    $user="root";
    $pass="";
    $dbN="Nome";
    
    $conn=new mysqli($server,$user,$pass,$dbN);
    if(!$conn){
    	die("Connessione fallita".mysqli_connect_error());
    }
    $sql="SELECT Percorso FROM immagini";
    $risultato=mysqli_query($conn,$sql);
    $row=mysqli_fetch_assoc($risultato);
    //echo $row['Percorso'];
    echo '<img src="'.$row['Percorso'].'">';
    ?>
    
    Con questo codice si preleva la stringa contenente il percorso e si accede all'immagine.
  • Re: Recuperare immagini dal filesystem

    Ma ti funziona?
    Apri mysql come oggetto ( $conn = new mysqli(..)) e poi lo usi proceduralmente
    
    $risultato=mysqli_query($conn,$sql);
    
    dovresti continuare a scrivere orientato agli oggetti
    
    $conn->query($sql)
    
    infine è sempre meglio chiudere la connessione
  • Re: Recuperare immagini dal filesystem

    Si funziona xD.
    Il codice è mezzo copiato da un video in verità.. ho cominciato a programmare in php da poche settimane, non so se le cose sono corrette o sbagliate l'importante è che funzionino.
    Quale sarebbe la differenza nello scrivere "mysqli_query()" rispetto ad usare il metodo dell'oggetto creato "->query()"?
  • Re: Recuperare immagini dal filesystem

    Come ti ho detto se crei una istanza di mysqli utilizzando l'operatore new è meglio che poi lo utilizzi come istanza della classe e quindi, per esempio, la query la invochi con la sintassi $conn->query($sql) .
    dai una occhiata a
    http://php.net/manual/en/book.mysqli.ph
Devi accedere o registrarti per scrivere nel forum
5 risposte