• User

    Passaggio $_FILES fra piu' pagine

    Ciao a Tutti.

    Ho la seguente situazione che non riesco a risolvere.
    Devo fare un upload di un'immagine in un database mysql, fin qui nessun problema. La difficolta' nasce dal fatto che ho 3 pagine da gestire:

    1. pag1.php per inserimento dati e scelta del file da caricare lato client nel campo "userfile", con form che punta a pag2.php
    2. pag2.php per controllo e conferma dati da parte dell'utente con form che punta a pag3.php
    3. pag3.php che e' la pagina di upload vera e propria con messaggio di successo od errore caricamento file.

    Succede che non riesco a recuperare e gestire nella pag3.php la variabile $_FILES, che contiene l'array del file che l'utente vuole caricare, presente nella pag2.php. Ho provato a creare dei campi nascosti nella pag2.php, ognuno con value uguale a:

    $_FILES["userfile"]["name"];
    $_FILES["userfile"]["type"];
    $_FILES["userfile"];
    $_FILES["userfile"]["tmp_name"];

    per passare e poi recuperare il valore con $_POST, ma niente da fare. Se faccio in pag3.php un echo delle variabili vedo il contenuto ma lo script di pag3.php non me lo gestisce.

    Questo e' il codice della pag3.php

    <?php

    include_once ($_SERVER["DOCUMENT_ROOT"]."/div/util/util_db.php");
    include_once ($_SERVER["DOCUMENT_ROOT"]."/div/Connessioni/conn_badge.php");

    $nome = $_POST["nome"];
    $cognome = $_POST["cognome"];
    $mansione = $_POST["mansione"];
    $societa = $_POST["societa"];
    $qualifica = $_POST["qualifica"];
    $progressivo = $_POST["progressivo"];

    $userfile = $_POST["userfile"];
    $userfilenome = $_POST["userfilenome"];
    $userfiletipo = $_POST["userfiletipo"];
    $userfilesize = $_POST["userfilesize"];
    $userfiletmp = $_POST["userfiletmp"];

    $fileName = $userfilenome;
    $tmpName = $userfiletmp;
    $fileSize = $userfilesize;
    $fileType = $userfiletipo;

    $fp = fopen($tmpName, 'r');
    $content = fread($fp, filesize($tmpName));
    $content = addslashes($content);
    fclose($fp);

    if(!get_magic_quotes_gpc())
    {
    $fileName = addslashes($fileName);
    }

    $query = "INSERT INTO tbadge (sede, nome, cognome, mansione, societa, foto, name, type, size, inizialequalifica, progressivobadge) VALUES ('".$siglaSede."', '".$nome."', '".$cognome."', '".$mansione."', '".$societa."', '".$content."', '".$userfilenome."', '".$userfiletipo."', '".$userfilesize."', '".$qualifica."', '".$progressivo."')";

    mysql_query($query) or die('Error, query failed');

    echo "<br>File $fileName uploaded<br>";

    ?>

    Questi sono gli errori:

    Warning: fopen(/var/tmp/phplcaWtj): failed to open stream: No such file or directory

    Warning: filesize(): Stat failed for /var/tmp/phplcaWtj (errno=2 - No such file or directory)

    Warning: fread(): supplied argument is not a valid stream resource

    Warning: fclose(): supplied argument is not a valid stream resource

    Spero di essere stato sufficientemente chiaro.


  • User Attivo

    dice che non trova i files.. controlla bene


  • User

    @Skyline said:

    dice che non trova i files.. controlla bene

    Grazie della risposta.
    In effetti pare che il problema sia proprio quello.
    Ho risolto cosi': attraverso la seconda pagina ho "appoggiato" il file dell'immagine in una directory creata ad hoc e poi lo vado a riprendere nella terza pagina attraverso la quale, una volta ripreso e caricato sul DB, provvedo a cancellarlo dalla directory di appoggio.