Visualizzazione dei risultati da 1 a 4 su 4

Discussione: filemtime non funziona

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2013
    Messaggi
    32

    filemtime non funziona

    Ciao a tutti.. mi sono spulciato un po' il forum alla ricerca di una soluzione, ma non ne ho trovata una che mi abbia aiutato, quindi vi chiedo scusa se apro una discussione per un argomento già trattato "qualche" volta:

    ho creato una pagina che gestisce l'upload e il download di file con PHP. Nella pagina di download vorrei mettere il nome del file e la data di upload. solo che usando filemtime() la data restituita è 1/1/1970.

    So bene (l'ho letto in altri thread) che questa è la data "zero" e che è come se la funzione restituisse FALSE. Ho fatto la prova ed effettivamente è così. Ho letto anche che potrebbe essere la path sbagliata e che il file non esiste, ma questa non l'ho capita: io ho una cartella in locale e vedo che materialmente i file ci sono. Non solo! Anche la funzione li vede, visto che i nomi li stampa corretti! Altra cosa: all'interno della cartella c'è anche un file .DS_Store.. quel file lo legge e mi dà la giusta data!

    questo è il codice:

    Codice PHP:
    <?php                    
           $cartella 
    opendir('uploads');                   
                  while (
    $file readdir($cartella)) {                        
                           
    $file_array[] = $file;                    }                    
                  foreach (
    $file_array as $file) {                        
                          if ( 
    $file == ".." || $file == "." || $file == ".DS_Store") {
                                continue;                        }
                            echo 
    "<div class=\"download\">";
                            echo 
    "<div class=\"file-name\">";
                            echo 
    "<a href=\"uploads/$file\">$file</a>";
                            echo 
    "</div>";
                            echo 
    "<div class=\"file-date\">";
                            if (
    file_exists($file)) {
                                echo 
    date ("F d Y H:i:s."filemtime($file));
                            } else { echo 
    "N.E."; }
                            echo 
    "</div>";
                            echo 
    "<div class=\"download-img\">";
                            echo 
    "<img src=\"immagini/download.png\" alt=\"download\" />";
                            echo 
    "</div>";
                            echo 
    "<div class=\"clear\"></div>";
                            echo 
    "</div>";
                        }
    ?>
    In questo caso mi stampa N.E. (il testo che ho messo per fare la prova con la funzione file_exist())
    Qual è il problema?
    Ultima modifica di simba92; 20-11-2014 a 12:27
    Paterno' Red Sox Baseball - www.redsoxpaterno.com

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,448
    Avevo letto "finalmente non funziona" ed ho pensato... "ecco un pazzo"

    Nella chiamata a filemtime(), così come a file_exists(), devi passare anche il percorso al file, non solo il nome se non si trova nella stessa cartella dello script, non è che non funziona perché sta da un'altra parte e non lo trova?
    Ultima modifica di Alhazred; 20-11-2014 a 13:12

  3. #3
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Secondo me stai passando alla funzione un path errato (a vedere dal tuo script):
    readdir() ti restituisce solo il nome del file e non il path.
    Il file si trova dentro la cartella uploads, ma tu non ne tieni conto.
    ad esempio
    il file pippo.txt sta in <dir_corrente>/uploads/
    $file = pippo.txt
    tu fai filemtime($file) => filemtime(<dir_corrente>/pippo.txt) , che ovviamente è sbagliato, visto che manca "uploads"

    Io ti consiglieri di usare sempre i path assoluti se devi lavorare su file system

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2013
    Messaggi
    32
    perfetto ora funziona! pensavo che usando opendir() già operava in quella cartella.. grazie mille!
    Paterno' Red Sox Baseball - www.redsoxpaterno.com

Tag per questa discussione

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 © 2024 vBulletin Solutions, Inc. All rights reserved.