Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Ordinare file di una cartella per nome

    ciao sono novello e pivello, ma mi arrabatto per trovare le soluzioni.
    Ho una richiesta, che mi ferma da 1 giorno.
    Ho trovato come leggere una directory con php, come mostrare il contenuto e come linkare il contenuto (sono pdf) nella lista che esce nella pagina fatta.

    Solo che non riesco a ordinare per nome, provato a cercare ma ogni esempio è diverso e di php conosco solo echo :|

    Se potete aiutarmi:
    Codice PHP:
    <?php
    $dir
    ='../../cataloghi_pdf/Famiglie specifiche/01 - Halder/01 - Normalizzati N3 ita/'
             if (
    $handle opendir($dir)) 
             { 
               while (
    false !== ($file readdir($handle))) 
               { 
                 
    //qui poi mettere i filtri per le estenzioni valide (puoi anche toglierle, qui per 
                 //esempio ci sono file di immagini jpg,bmp,gif e cmq dovresti escludere sempre 
                 // due file nominati '.' e '..' non scordarlo!!) 
                 
    if ( (substr($file,strpos($file,'.')+1)=='jpg' ) or 
                     (
    substr($file,strpos($file,'.')+1)=='pdf') or 
                    ( 
    substr($file,strpos($file,'.')+1)=='gif' ) ) 
                 { 
                   
    $cartella[$i]=$file;
                   
    $i++; 
                  } 
               } 
               
    closedir($handle); 
             } 

    foreach (
    $cartella as $file)

    {
        
        echo 
    "<a href=\"$dir/$file\" target='_blank'>$file</a>
    "
    ;
    }



    ?>
    forse è scorretto, forse non è perfetto la almeno la pagina mostra tutti i file, ma non in ordine alfabetico. Provato a cercare sort ma mi da errore perchè chiede 1 valore che non so interpretare, come la variabile (si chiama così?) $i++
    Commenti sullacompetenza alla fine
    grazie a chiunque mi aiuti
    Ciao

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Prova e dimmi

    Codice PHP:
    $dir='../../cataloghi_pdf/Famiglie specifiche/01 - Halder/01 - Normalizzati N3 ita/';  
    $estensioni = array('jpg','gif','pdf');
    $cartella scandir($dir);

    foreach(
    $cartella as $file)
         if (
    in_array(substr($file,-3),$estensioni))
                echo 
    "<a href=\"$dir/$file\" target='_blank'>$file</a>
    "

    Edit: ho apportato qualche miglioramento

  3. #3
    MA SEI UN MITO !!!
    grazie grazie grazie
    perfetto
    vorrei chiederti la spiegazione di tutto il codice, ma penso che servirebbero 2 settimane per capire
    ti ringrazio nuovamente.
    Se posso, ma solo se non crea difficoltà, avevo trovato girando, anche il modo, al posto di aprire in una nuova finestra il file pdf, la possibilità di impostare il download del file, impendendo quindi ad adobe di aprirlo online (ci sono file di 4 o 5 mb).

    Il post che ho trovato parlava di creare un file download.php e cambiare il tag href aggiungendo download.php alla fine...

    il risultato è ... neanche immaginabile...

    questoil file download.php che non so se usare così o metterci i tag della pagina in testa (tipo title)

    Codice PHP:
    <?php
    $nome_file
    =$_GET['nome_file'];
    header("Content-type: Application/octet-stream");
    header("Content-Disposition: attachment; filename=$nome_file");
    header("Content-Description: Download PHP");
    readfile($nome_file);
    ?>
    questa la modifica al tag href

    codice:
    echo "<a href=\"download.php?nome_file=$dir/$file\">$file</a>
    ";
    questo il post di riferimento da cui ho scopiazzato per fare la mia versione che tu hai risolto alla grandissima...messe le modifiche non mi trova nulla, nemmeno il file download.php

    http://forum.html.it/forum/showthread/t-1186579.html

    Cmq anche solo per la prima risposta, ancora GRAZIE GRAZIE e GRAZIE
    ciao

  4. #4
    il tuo script è moooolto pericoloso...

    ---------------

    Il metodo utilizzato da RoTeam è esatto ma un pò vecchio stile.
    Questo genere di operazione la si esegue con funzione glob():

    Codice PHP:
    <?php  
    // selezioniamo i file con estensione .jpg, jpeg, .png e .gif  
    // all'interno della cartella immagini/
    $array_file glob("immagini/*.{jpg,jpeg,gif,png}"GLOB_BRACE);  
      
    foreach (
    $array_file as $key => $value)  
       {  
       echo 
    '[img]'.$value.'[/img]';  
       }  
    ?>
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Nella pagina del download
    Codice PHP:
    if(is_file($_GET['file']) && substr($_GET['file'],-3)=='pdf'){
    header("Content-type: Application/octet-stream"); 
    header("Content-Disposition: attachment; filename={$_GET['file']}"); 
    header("Content-Description: Download PHP"); 
    readfile($_GET['file']); 
    }else 
    header("Location: index.php"); 
    Nella pagina dove stampi files
    Codice PHP:
    $dir='img/';  
    $estensioni = array('jpg','gif','pdf');
    $cartella scandir($dir);

    foreach(
    $cartella as $file)
         if (
    in_array(substr($file,-3),$estensioni))
                echo (
    substr($file,-3)=='pdf') ? "Download: <a href=\"download.php?file=$dir$file\" target='_blank'>$file</a>
    "File: <a href=\"$dir/$file\" target='_blank'>$file</a>
    "

    E dovrebbe andarti

  6. #6
    Originariamente inviato da RoTeam
    Codice PHP:
    if(is_file($_GET['file']) && substr($_GET['file'],-3)=='pdf'){...} 
    ... insomma... a parte che non è case insensitive (pdf != PDF)

    ma mi sembra un controllo un bel pò grezzo. imho
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Originariamente inviato da oly1982
    ... insomma... a parte che non è case insensitive (pdf != PDF)

    ma mi sembra un controllo un bel pò grezzo. imho
    Vabbè è ovvio che è un controllo scritto un po grezzo, si da per scontato che le estensioni
    siano tutte minuscole

  8. #8
    domattina ci provo. Ma quello relativo alla pagina dw.
    Devo mettere tutto l'header cioè:

    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
    	<title></title>
    	<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    	<link rel="shortcut icon" href="../../favicon.ico">
    </head>
    OPPURE LA pagina è fatta solo dal codice php ?
    va bhe ci provo e ti dico
    un riGRAZIE RIGRAZIE



    Originariamente inviato da RoTeam
    Nella pagina del download
    Codice PHP:
    if(is_file($_GET['file']) && substr($_GET['file'],-3)=='pdf'){
    header("Content-type: Application/octet-stream"); 
    header("Content-Disposition: attachment; filename={$_GET['file']}"); 
    header("Content-Description: Download PHP"); 
    readfile($_GET['file']); 
    }else 
    header("Location: index.php"); 


    E dovrebbe andarti

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Originariamente inviato da umbe_demo
    domattina ci provo. Ma quello relativo alla pagina dw.
    Devo mettere tutto l'header cioè:

    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
    	<title></title>
    	<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    	<link rel="shortcut icon" href="../../favicon.ico">
    </head>
    OPPURE LA pagina è fatta solo dal codice php ?
    va bhe ci provo e ti dico
    un riGRAZIE RIGRAZIE
    Solo dal php sarebbe inutile il resto

  10. #10
    questa l'url della pagina che esce, cioè il percorso del download viene preso come ho definito la variabile $dir
    e di conseguenza poi non trova il file
    Codice PHP:
    [url]http://www.xxx.com/web/it/04prodotti/download.php?file=../../cataloghi_pdf/Famiglie%20specifiche/01%20-%20Halder/01%20-%20Normalizzati%20N3%20ita/01%20-%20Normalizzati%20N3%20ita%20-%20posizionatori.pdf[/url] 
    questo l'errore del server
    codice:
    Not Acceptable  An appropriate representation of the requested resource /web/it/04prodotti/download.php could not be found on this server.  Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
    potrebbe aiutare cambiare i nomi ai file togliendo gli spazi giusto per iniziare ?
    Cmq se siente stanchi va bene anche solo la soluzione del listato..
    :O
    grazie

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.