Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Help sull'upload

  1. #1

    Help sull'upload

    Ho preso lo script dell'articolo di questo sito "Upload con Php" di Giancarlo Moscitta ed lo modificato un po'.
    In pratica ho una pagina con form che mi permette di riempire i campi di un record di database, nella stessa pagina c'è il link per aprire un popup in cui c'è il form per l'upload del file.
    Il codice riportato è quello della pagina di conferma dell'avvenuto upload.
    Codice PHP:
    <?

    // QUESTE RIGHE RENDONO LO SCRIPT COMPATIBILE CON LE VERSIONI
    // DI PHP PRECEDENTI ALLA 4.1.0
    if(!isset($_FILES)) $_FILES $HTTP_POST_FILES;
    if(!isset(
    $_SERVER)) $_SERVER $HTTP_SERVER_VARS;

    /********************* VARIABILI DA SETTARE ********************/
    // Directory dove salvare i files Uploadati ( chmod 777, percorso assoluto)
    $upload_dir $_SERVER["DOCUMENT_ROOT"]."/altervista/uploaddir";
    // ==========================================================
    chmod($_SERVER["DOCUMENT_ROOT"]."/altervista/uploaddir",777);
    // ==========================================================

    // print ($_SERVER["DOCUMENT_ROOT"]."/altervista/uploaddir");
    if(trim($_FILES["upfile"]["name"])=="") {die("Non hai indicato il file da uploadare !");}
                                            else {  
    // Il file è stato indicato
                                                    
    if(is_uploaded_file($_FILES["upfile"]["tmp_name"])) // E' stato effettuato l'upload
                                                        
    {if ($_FILES["upfile"]["size"]>2048// E' troppo grande
                                                            
    {print("L\'immagine non può pesare più di 2 mb");}
                                                            else{
    move_uploaded_file($_FILES["upfile"]["tmp_name"], "$upload_dir/$file_name") or die("Impossibile spostare il file, controlla l'esistenza o i permessi della directory dove fare l'upload.");
                                                                echo 
    "L'upload del file " $_FILES["upfile"]["name"] . " è avvenuto correttamente";}
                                                        }
                                                        else { die(
    "Problemi nell'upload del file ".$_FILES["upfile"]["name"]).$_FILES['upfile']['error'];}  // Non è stato effettuato l'upload
                                                 
    }
    ?>
    Mi rendo conto che non è il massimo dell'eleganzacorrettezza usare tutti quei "IF-else" nidificati, ma non riesco a capire perchè quando vado ad eseguire lo script ricevo sempre il messaggio "Problemi nell'upload del file".
    Ci sto diventando scemo.
    Mi potete aiutare, sono agli inizi. Grazie !

  2. #2

    Edit

    Lo script l'ho modificato, in pratica ho copiato e incollato quello presente nell'articolo aggiungendo soltanto riga:
    chmod("$upload_dir",777);
    ma ricevo sempre lo stesso messaggio:
    "Problemi nell'upload del file"

    H E L P ! ! ! ! ! ! !




    Codice PHP:
    <?
    // QUESTE RIGHE RENDONO LO SCRIPT COMPATIBILE CON LE VERSIONI
    // DI PHP PRECEDENTI ALLA 4.1.0
    if(!isset($_FILES)) $_FILES $HTTP_POST_FILES;
    if(!isset(
    $_SERVER)) $_SERVER $HTTP_SERVER_VARS;
    /********************* VARIABILI DA SETTARE ********************/
    // Directory dove salvare i files Uploadati ( chmod 777, percorso assoluto)
    $upload_dir $_SERVER["DOCUMENT_ROOT"]."/upload";
    chmod("$upload_dir",777);
    // Eventuale nuovo nome da dare al file uploadato
    $new_name "";
    // Se $new_name è vuota, il nome sarà lo stesso del file uploadato
    $file_name = ($new_name) ? $new_name $_FILES["upfile"]["name"];
    if(
    trim($_FILES["upfile"]["name"]) == "") { die("Non hai indicato il file da uploadare !"); }
    if(@
    is_uploaded_file($_FILES["upfile"]["tmp_name"])) { @move_uploaded_file($_FILES["upfile"]["tmp_name"], "$upload_dir/$file_name") or die("Impossibile spostare il file, controlla l'esistenza o i permessi della directory dove fare l'upload."); }
        else { die(
    "Problemi nell'upload del file " $_FILES["upfile"]["name"]); } echo "L'upload del file " $_FILES["upfile"]["name"] . " è avvenuto correttamente";
    ?>

  3. #3
    Utente bannato
    Registrato dal
    Sep 2005
    Messaggi
    905
    mostra l'albero della dir, fai grassetto i/l file dello script e la dir dove vuoi salvare.

  4. #4
    Originariamente inviato da php_34
    mostra l'albero della dir, fai grassetto i/l file dello script e la dir dove vuoi salvare.
    Premetto:
    ==> ho istallato php 5 come fast-Cgi su iis (winXP Pro). Compila fa debug e tutto il resto Ok.

    ==> ALBERO DIRECTORY:


    *: "uploaddir" è la directory di upload definitivo
    "upload" è la directory di upload temporaneo
    "altervista" è la directory dove salvo tutti i file di script

    *: Devo precisare che ho fatto 2 form su 2 file diversi. Il primo form serve per acquisire tutti i campi del record da riempire e contiene un link che fa aprire un popup. Nel popup viene aperto il secondo form che contiene il solo campo file per fare l'upload. La pagina di conferma viene quindi aperta nel popup.

    ==> Il php.ini, relativamente all'upload è impostato così:
    ;;;;;;;;;;;;;;;;
    ; File Uploads ;
    ;;;;;;;;;;;;;;;;

    ; Whether to allow HTTP file uploads.
    file_uploads = On

    ; Temporary directory for HTTP uploaded files (will use system default if not
    ; specified).
    upload_tmp_dir = c:\inetput\wwwroot\upload\

    ; Maximum allowed size for uploaded files.
    upload_max_filesize = 2M


    ==> Riecco lo script nell'ultima 'versione':

    Codice PHP:
    <?
    // QUESTE RIGHE RENDONO LO SCRIPT COMPATIBILE CON LE VERSIONI
    // DI PHP PRECEDENTI ALLA 4.1.0
    if(!isset($_FILES)) $_FILES $HTTP_POST_FILES;
    if(!isset(
    $_SERVER)) $_SERVER $HTTP_SERVER_VARS;
    /********************* VARIABILI DA SETTARE ********************/
    // Directory dove salvare i files Uploadati ( chmod 777, percorso assoluto)
    $upload_dir $_SERVER["DOCUMENT_ROOT"]."/altervista/uploaddir";
    print(
    "$upload_dir
    "
    );
    // Permessi su directory di upload
    chmod("$upload_dir",777);
    // Permessi su directory di upload temporanea
    chmod($_SERVER["DOCUMENT_ROOT"].'/upload/',777);
    // Eventuale nuovo nome da dare al file uploadato
    $new_name "";
    // Se $new_name è vuota, il nome sarà lo stesso del file uploadato
    $file_name = ($new_name) ? $new_name $_FILES["upfile"]["name"];
    if(
    trim($_FILES["upfile"]["name"]) == "") { die("Non hai indicato il file da uploadare !"); }
    if(
    is_uploaded_file($_FILES["upfile"]["tmp_name"])) {move_uploaded_file($_FILES["upfile"]["tmp_name"], "$upload_dir/$file_name") or die("Impossibile spostare il file, controlla l'esistenza o i permessi della directory dove fare l'upload."); }
        else { die(
    "Problemi nell'upload del file " $_FILES["upfile"]["name"]); } echo "L'upload del file " $_FILES["upfile"]["name"] . " è avvenuto correttamente";
    ?>
    GRAZIE in anticipo

  5. #5
    Utente bannato
    Registrato dal
    Sep 2005
    Messaggi
    905
    la directory non è $_SERVER['DOCUMENT_ROOT']."/uploaddir" o quel che era ma ../uploaddir dimmmi come va a finire

  6. #6
    Originariamente inviato da php_34
    la directory non è $_SERVER['DOCUMENT_ROOT']."/uploaddir" o quel che era ma ../uploaddir dimmmi come va a finire
    Scusa, ma a forza di ragionare sullo script mi ero dimenticato di reimpostare la dimensione massima nell'html che era rimasta a 10000 byte= 9 kbyte. Ecco perchè lo script non funzionava.
    Grazie lostesso per l'aiuto.
    Ciao

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.