Visualizzazione risultati 1 fino 8 di 8

Discussione: Upload file in php

  1. #1
    Guest

    Predefinito Upload file in php

    Dopo parecchio tempo ho rimesso le mani nel php, ma mi sono intoppato subito
    Devo creare un pannello in php che carichi, mostri e nel caso cancelli dei file in una directory.
    Il codice che ho scritto è questo, ma qualcosa sembra non andare.

    index.html
    Codice PHP:
    <HTML>
    <
    BODY>
    <
    HR>
    <
    FORM METHOD=POST ACTION="carica.php "ENCTYPE="multipart/form-data">
    <
    TABLE WIDTH="70%" BORDER="8" CELLSPACING="0">
    <
    TR><TD>
    <
    B>Inserisci il nome del file da inviare </B><INPUT TYPE=FILE NAME="uploadfile"><BR><BR>
    <
    A HREF="mostra.php">Mostra i file caricati</A>
    <
    INPUT TYPE="SUBMIT" VALUE="Invia il file">
    <
    INPUT TYPE="RESET" VALUE="No">
    </
    TR></TD>
    </
    TABLE>
    </
    FORM>
    </
    BODY>
    </
    HTML>
    carica.php
    Codice PHP:
    <?php
    echo "<PRE>";
    echo
    "nome del file locale creato dopo l'invio: $uploadfile\n";
    echo
    "nome originale del file remoto: $uploadfile_name\n";
    echo
    "dimensioni del file in byte: $uploadfile_size\n";
    echo
    "tipo di file: $uploadfile_type\n";
    echo
    "</PRE>";
    echo
    "<HR>";
    # controllo che il file esista realmente
    if ( $uploadfile == "none" ) {
    echo
    "Non è stato inviato alcun file<BR>";
    echo
    "Ritorna al form per inviare il <A HREF=\"index.html\">file</A>";
    exit;
    } else {
    #copia il file nella directori cover
    copy($uploadfile,"http://www.albit.altervista.org/PYRGI/Cover/$uploadfile_name");
    if (
    $uploadfile == "true"){
    echo
    "Invio del file riuscito";
    # cancella il file temporaneo
    unlink($uploadfile);
    }
    ?>
    Ritorna al form per inviare i <A HREF="index.html">file</A>
    mostra.php
    Codice PHP:
    <HTML>
    <BODY>
    <TABLE BORDER=8 WIDTH=40% ALIGN=CENTER BORDER=3>
    <?php
    # elenco dei contenuti della cartella con link
    $cartella = opendir('http://www.albit.altervista.org/PYRGI/cover/'); #come in "carica.php" qui bisogna inserire la directory giusta
    # creo un ciclo che legge dalla directory di %cartella creando a sua volta un array
    while ($file = readdir($cartella)) {
    $array_file[] = $file;
    }
    # leggo ogni $file dall'array creato prima con un ciclo for
    foreach ($array_file as $file) {
    #quindi creo una tabella per elencarli
    echo "<TR><TD><CENTER>";
    echo
    "- $file";
    echo
    "</TR></TD></CENTER>";
    }
    "."
    ?>
    </TABLE>
    </BODY>
    </HTML>

  2. #2
    Guest

    Predefinito

    Citazione Originalmente inviato da albit Visualizza messaggio
    ... ma qualcosa sembra non andare.
    Cosa?


    ciao!

  3. #3
    Guest

    Predefinito

    carica.php mi da
    Parse error: syntax error, unexpected $end in /membri/albit/PIRGY/carica.php on line 23

    mentre mostra.php non fa vedere un cavolo anche se ci sono file nella cartella cover

  4. #4
    Guest

    Predefinito

    nel file mostra fai così:
    Codice PHP:
    <?php
    $dir
    = "cover/";
    foreach(
    glob("$cover*") as $file) {
    echo
    "<a href=\"{$file}\">{$file}</a><br />";
    }
    ?>
    per il file carica:
    Codice PHP:
    <?php
    echo "<PRE>";
    echo
    "nome del file locale creato dopo l'invio: $uploadfile\n";
    echo
    "nome originale del file remoto: $uploadfile_name\n";
    echo
    "dimensioni del file in byte: $uploadfile_size\n";
    echo
    "tipo di file: $uploadfile_type\n";
    echo
    "</PRE>";
    echo
    "<HR>";
    # controllo che il file esista realmente
    if ( $uploadfile == "none" ) {
    echo
    "Non è stato inviato alcun file<BR>";
    echo
    "Ritorna al form per inviare il <A HREF=\"index.html\">file</A>";
    exit;
    } else {
    copy($uploadfile,"PYRGI/Cover/$uploadfile_name");
    if (
    $uploadfile == "true"){
    echo
    "Invio del file riuscito";
    unlink($uploadfile);
    }
    }
    ?>
    Ritorna al form per inviare i <A HREF="index.html">file</A>
    Nel file carica non avevi chiuso una graffa, aperta dall'else..
    infatti l'errore
    Codice:
    Parse error: syntax error, unexpected $end in file
    significa che non si arriva alla fine dello script, poichè non tutto è stato chiuso..
    per il file mostra, come nel file carica, l'errore sta nel percorso assoluto.
    Non puoi usare il percorso assoluto, ex:
    copy($uploadfile,"http://www.albit.altervista.org/PYRGI/Cover/$uploadfile_name")
    ma devi fare:
    copy($uploadfile,"PYRGI/Cover/$uploadfile_name")
    Ultima modifica di NetSkin : 01-11-2008 alle ore 14.48.14 Motivo: Non avevo scritto le spiegazioni

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da albit Visualizza messaggio
    carica.php mi da
    Parse error: syntax error, unexpected $end in /membri/albit/PIRGY/carica.php on line 23

    mentre mostra.php non fa vedere un cavolo anche se ci sono file nella cartella cover
    Aggiungi una parentesi graffa "}" alla fine di carica.php: chiudi un if ma non un'else.

    Per il secondo errore prova a fare così per ciclare i file nella cartella:

    Codice PHP:
    while(false !== ($file=readdir($cartella)){
    echo(
    $file);
    }
    Ultima modifica di Xenom89 : 01-11-2008 alle ore 14.53.48

  6. #6
    Guest

    Predefinito

    mostra.php ora va, mentre carica.php mi elenca ogni dettaglio del file, ma poi non viene trasferito nella directory online >.<

  7. #7
    Guest

    Predefinito

    Non usare copy(): usa move_uploaded_file();

    Codice PHP:
    move_uploaded_file($uploadfile,'PYRGI/Cover/$uploadfile_name');

  8. #8
    Guest

    Predefinito

    se intendi così
    Codice PHP:
    <?php
    echo "<PRE>";
    echo
    "nome del file locale creato dopo l'invio: $uploadfile\n";
    echo
    "nome originale del file remoto: $uploadfile_name\n";
    echo
    "dimensioni del file in byte: $uploadfile_size\n";
    echo
    "tipo di file: $uploadfile_type\n";
    echo
    "</PRE>";
    echo
    "<HR>";
    # controllo che il file esista realmente
    if ( $uploadfile == "none" ) {
    echo
    "Non è stato inviato alcun file<BR>";
    echo
    "Ritorna al form per inviare il <A HREF=\"index.html\">file</A>";
    exit;
    } else {
    move_uploaded_file($uploadfile,'PYRGI/cover/$uploadfile_name');
    if (
    $uploadfile == "true"){
    echo
    "Invio del file riuscito";
    unlink($uploadfile);
    }
    }
    ?>
    Ritorna al form per inviare i <A HREF="index.html">file</A>
    Non va ugualmente

    EDIT: Pensavo . . . non è che devo usare comandi come opendir?

    EDIT2:Ma è possibile che i file non vengono uploaddati perchè c'è qualche permesso da cambiare nelle cartelle?
    Pls rispondetemi:\
    Inoltre ho trasformato il codice in
    Codice PHP:
    <?PHP
    // RECUPERO I PARAMETRI DA PASSARE ALLA FUNZIONE PREDEFINITA PER L'UPLOAD
    $cartella = 'PYRGI/cover/';
    $percorso = $_FILES['miofile']['tmp_name'];
    $nome = $_FILES['miofile']['name'];
    // ESEGUO L'UPLOAD CONTROLLANDO L'ESITO
    if (move_uploaded_file($percorso, $cartella . $nome))
    {
    print
    "Upload eseguito con successo";
    }
    else
    {
    print
    "Si sono verificati dei problemi durante l'Upload";
    }
    ?>
    Ultima modifica di albit : 02-11-2008 alle ore 23.46.39 Motivo: edit

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •