Leggere dinamicamente le immagini da una cartella

  • Creatore Discussione Creatore Discussione Fabio90
  • Data di inizio Data di inizio

Fabio90

Utente Attivo
29 Feb 2012
507
0
16
Salve a tutti,

HTML:
<form enctype="multipart/form-data" action="upload/upload_img.php" method="POST">
Invia questo file: <input name="userfile" type="file">
<input type="submit" value="Invia File">
</form>

upload_img.php
PHP:
<?php
//percorso della cartella dove mettere i file caricati
$uploaddir = '../../img/';

//Recupero il percorso temporaneo del file
$userfile_tmp = $_FILES['userfile']['tmp_name'];

//recupero il nome originale del file caricato
$userfile_name = $_FILES['userfile']['name'];

print "<pre>";
//copio il file dalla locazione temporanea alla mia cartella upload
if (move_uploaded_file($userfile_tmp, $uploaddir . $userfile_name)) {
  //Se l'operazione è andata a buon fine...
  print "File inviato con successo. Ecco alcune informazioni:\n";
  print_r($_FILES);
  echo "<a href='#'>torna indietro </a>";
}else{
  //Se l'operazione è fallta...
  print "Upload NON valido! Alcune informazioni:\n"; 
  print_r($_FILES);
  echo "<a href='#'>torna indietro </a>";
}
print "</pre>";
?>

con questi codici carico da area di amministrazione le mie immagini nella cartella "img".
La domanda è: come faccio a far vedere le immagini caricate in quella cartella? So che esistono le funzioni opendir e readdir ma non sono molto pratico
Grazie dell'aiuto!
 
Ciao,
puoi provare cosi:
PHP:
<?php
// indico il percorso della cartella
$d = dir(getcwd() . "/img");
//ciclo il contenuto
while ($entry = $d->read()) {
    if ($entry != "." && $entry != "..") {
        // se non è un altra cartella
        if (!is_dir("img/" . $entry)) {
            // mostro l'immagine
            echo "<img src='img/" . $entry . "' alt='img'/><br/>";
        }
    }
}
$d->close();
?>
 
se ho le immagini in un altro livello è giusto se? aggiorno così

PHP:
 <?php
// indico il percorso della cartella
$d = dir(getcwd() . "../img");
//ciclo il contenuto
while ($entry = $d->read()) {
    if ($entry != "." && $entry != "..") {
        // se non è un altra cartella
        if (!is_dir("img/" . $entry)) {
            // mostro l'immagine
            echo "<img src='../img/" . $entry . "' alt='img'/><br/>";
        }
    }
}
$d->close();
?>
 
no, getcwd() dovrebbe indicare il percorso della cartella in uso

prova cosi

PHP:
<?php
// indico il percorso della cartella
$d = dir("../img");
//ciclo il contenuto
while ($entry = $d->read()) {
    if ($entry != "." && $entry != "..") {
        // se non è un altra cartella
        if (!is_dir("../img/" . $entry)) {
            // mostro l'immagine
            echo "<img src='../img/" . $entry . "' alt='img'/><br/>";
        }
    }
}
$d->close();
?>
 
Ciao, scusate se riuppo questo topic, ma non posso fare altrimenti.

Il codice funziona ed è servito anche a me, solo che avrei bisogno di poter modificare l'immagine, creando attorno a se la struttura del sito e altri dettagli.

Per questo motivo avrei bisogno che il prelievo dell'immagine sia al di fuori del codice, esempio:

PHP:
<?php 
// indico il percorso della cartella 
$d = dir(getcwd() . "/images"); 
//ciclo il contenuto 
while ($entry = $d->read()) { 
    if ($entry != "." && $entry != "..") { 

            // mostro l'immagine 
            echo "<img src='images/" . $entry . "' alt='img'/><br/>"; 
        
    } 
} 
$d->close(); 
?>


<? echo "<img src='images/" . $entry . "' alt='img'/><br/>"; ?>


E' ovvio che il richiamo dentro il codice vorrei fosse eliminato, altrimenti come è ovvio ci sarebbero duplicati, come posso fare? Grazie
 

Discussioni simili