• User Attivo

    provare upload in locale

    Salve a tutti.
    Ho un dominio Lunix con Aruba e devo implementare l'UPLOAD delle immagini.
    Ho scaricato lo script da Aruba e provato, e funziona perfettamente.
    Il problema è questo: Io costruisco il sito in locale utilizzando easyphp. Noto che però lo script non funziona e mi da una caterba di errori. Ora mi e soprattutto Vi chiedo è possibile fare le prove in liocale??
    Lo script di aruba funziona in questo modo:
    Ha 2 pagine
    la prima Prova.php con questo codice:

    <html>
    <head>
    <body>
    <FORM ENCTYPE="multipart/form-data" ACTION="upload.php" METHOD="post">
    <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1024000">
    <INPUT NAME="UploadedFile" TYPE="file">
    <INPUT TYPE="submit" VALUE="Invia il file">
    </FORM>
    </body>
    </html>


    la seconda pagina Upload.php con questo codice:

    HTML>
    <HEAD>
    <TITLE>Upload in php</TITLE>
    </HEAD>
    <BODY>
    <?
    $path="localhost/dinamico"; (nn so se ho configurato correttamente)

    if( $UploadedFile != none )
    {
    print("Percorso locale: $UploadedFile <BR>\n");
    print("Nome del file: $UploadedFile_name <BR>\n");
    print("Dimensione del file: $UploadedFile_size <BR>\n");
    print("Tipo di file: $UploadedFile_type <BR>\n");
    print("<HR>");
    if (copy( $UploadedFile , "$path/$UploadedFile_name" )){
    print "$UploadedFile copiato con successo in $path/$UploadFile_name<br>";
    }else{
    print "Errore.. upload non riuscito<br>";
    }
    unlink($UploadedFile);
    }else{
    print "Errore.. nessun file.<br>";
    }
    ?>
    </BODY>
    </HTML>

    Gli errori che ho in locale sono questi:

    Notice: Undefined variable: UploadedFile in c:\programmi\easyphp1-8\www\dinamico\upload\upload.php on line 11
    Notice: Use of undefined constant none - assumed 'none' in c:\programmi\easyphp1-8\www\dinamico\upload\upload.php on line 11
    Notice: Undefined variable: UploadedFile in c:\programmi\easyphp1-8\www\dinamico\upload\upload.php on line 13
    Percorso locale:
    Notice: Undefined variable: UploadedFile_name in c:\programmi\easyphp1-8\www\dinamico\upload\upload.php on line 14
    Nome del file:
    Notice: Undefined variable: UploadedFile_size in c:\programmi\easyphp1-8\www\dinamico\upload\upload.php on line 15
    Dimensione del file:
    Notice: Undefined variable: UploadedFile_type in c:\programmi\easyphp1-8\www\dinamico\upload\upload.php on line 16
    Tipo di file:

    Notice: Undefined variable: UploadedFile in c:\programmi\easyphp1-8\www\dinamico\upload\upload.php on line 18
    Notice: Undefined variable: UploadedFile_name in c:\programmi\easyphp1-8\www\dinamico\upload\upload.php on line 18
    Errore.. upload non riuscito
    Notice: Undefined variable: UploadedFile in c:\programmi\easyphp1-8\www\dinamico\upload\upload.php on line 23
    Warning: unlink(): Permission denied in c:\programmi\easyphp1-8\www\dinamico\upload\upload.php on line 23

    Grazie a tutti


  • Super User

    Devi sostituire $UploadedFile con $_POST[UploadedFile]


  • User

    non escludo inoltre che non abbia i premessi di upload sulla cartella... è in public nel locale?
    hai impostato bene php?


  • User Attivo

    Ciao
    Grazie a voi che mi avete risposto.
    Ho assegnato come da consiglio nella pagina upload la variabile

    $UploadedFile = $_POST[UploadedFile];

    Inoltre ho dato un'occhiata al file php.ini nella sezione upload file le seguenti righe che credo vadano bene

    ;;;;;;;;;;;;;;;;
    ; 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 = "${path}\tmp"
    ; Maximum allowed size for uploaded files.
    upload_max_filesize = 2M

    Non so se la cartella public che mi sono creato ha i permessi..nn so come si possano assgnare i permessi...
    Anche con la modifica fatta, nn è cambiato niente...mi da gli stessi errori.

    Spero mi possiate aiutare


  • Super User

    i permessi di scrittura le verifichi da iis (immagino tu sia su windows).
    controlla però che la cartella sia accessibile in scrittura all'utente iusr_[nome_macchina] e lo verifichi dalle proprierà della cartella


  • User Attivo

    Si è vero ma credo il problema non siano i permessi...o almeno sono solo un aparte


  • User

    anche io ho lo stesso problema di non riuscire a provare upload da remoto..utilizzo lamp su linux. come posso risolvere?


  • Moderatore

    l'upload si svolge in 2 fasi

    la prima riguarda la presentazione di un modulo tramite il quale l'utente può scegliere quale file uploadare....si tratta di una banale pagina html contenente un form

    
    <form enctype="multipart/form-data" action="uploader.php" method="POST">
    <input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
    Scegli file da uploadare: <input name="uploadedfile" type="file" /><br />
    <input type="submit" value="Upload File" />
    </form>
    

    l'altra fase è server side e viene svolta in questo esempio dal file uploader.php il quale si occupa di ricevere i dati della sezione POST e conservarli in un file permanente su disco

    
    // directory in cui conservare il file
    $target_path = "uploads/";
    
    $target_path = $target_path . basename( $_FILES['uploadedfile']['name']); 
    
    if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
        echo "Il file ".  basename( $_FILES['uploadedfile']['name']). 
        " è stato registrato.";
    } else{
        echo "Errore durante l'upload, riprovare!!!";
    }
    
    

    notare che PHP mette a disposizione il vettore S_FILES['uploadedfile'] dove sono conservati il nome originale del file e il path del file temporaneo creato da PHP....

    questo ovviamente usando PHP, nel caso di ASP, Python, Perl, ecc... la procedura da seguire è diversa


  • User Attivo

    IO HO PROVATO QUESTO CODICE MA NON FUNZIONA! IO VORREI INVIARE L'ALLEGATO A UNA E-MAIL COME POSSO FARE? ---------------------------------------------------------- la seconda pagina Upload.php con questo codice: HTML> Upload in php