• User Newbie

    Ins record + upl foto ; dove creare il file temp ?

    ri-eccomi, ci ho ragionato e ri-formulo la mia domanda:

    tutti i tutorial che ho visto per il caricamento foto prevedono 2 pagine separate: un form che chiama lo script con le istruzioni per l'inserimento record ed il caricamento dei files.

    Io vorrei effettuare il tutto sulla stessa pagina; ho gia scritto il codice che inserisce il record mettendo anche il nome file (var "Logo" dal form) con il percorso (folder "foto/") correttamente

    $nuovo_nome0="foto/".$_POST['Logo'];

    ora però non riesco a creare il file temporaneo:

    $file_temp0=($_FILES['Logo']['tmp_name']);

    ed a spostarlo nella directory:

    move_uploaded_file($file_temp0, $nuovo_nome0);

    Facendo il print sembra che non venga creato

    *if (file_exists($file_temp0)) {
    echo "file temporaneo creato";
    } else {
    echo "il file non esiste";
    }
    *

    A questo punto mi viene il dubbio che non si possa utilizzare la stessa pagina per inserire sia record che file.

    Oppure sbaglio semplicemente a posizionare la dichiarazione di $file_temp0 ?

    Il listato è :


    if (isset($_SERVER['QUERY_STRING'])) {

    $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
    }

    ######Gestione Img###

    $file_temp0=($_FILES['Logo']['tmp_name']);
    $file_temp1=($_FILES['Foto']['tmp_name']);

    $inviato=file_exists($file_temp0);

    $percorso="foto/"; //cartella sul server dove verrà spostata la foto

    $nuovo_nome0=$percorso.$_POST['Logo'];
    $nuovo_nome1=$percorso.$_POST['Foto'];
    #################

    if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {

    $insertSQL = sprintf("INSERT INTO marcalinea (ID_MarcaLinea, Marca_, LineaProdotto_, Logo, Foto, Descrizione, Pdf_) VALUES (%s, %s, %s, %s, %s,

    %s, %s)",
    GetSQLValueString($_POST['ID_MarcaLinea'], "int"),
    GetSQLValueString($POST['Marca'], "int"),
    GetSQLValueString($POST['LineaProdotto'], "int"),
    GetSQLValueString($nuovo_nome0, "text"),
    GetSQLValueString($nuovo_nome1, "text"),
    GetSQLValueString($_POST['Descrizione'], "text"),
    GetSQLValueString($POST['Pdf'], "int"));

    ########sposta img##########

    move_uploaded_file($file_temp0, $nuovo_nome0);
    move_uploaded_file($file_temp1, $nuovo_nome1);

    #########ins record:questo va correttamente###########

    mysql_select_db($database_Conn_Bianchi, $Conn_Bianchi);
    $Result1 = mysql_query($insertSQL, $Conn_Bianchi) or die(mysql_error());

    $insertGoTo = "view.php";


  • User Attivo

    Ciao Nicemotion e benvenuto sul forum GT,
    ti confermo che puoi utilizzare la stessa pagina, senza alcuna ombra di dubbio, il problema lo devi cercare altrove.

    Leggendo al volo il tuo script, arguisco che nel form hai una riga del tipo:

    <input type=file name="Logo">

    In particolare mi confermi il valore Logo? Se lo confermi, prova a farti stampare tutto il contenute dell'array $_FILES['Logo'] scrivendo all'inizio dello script (o dove preferisci tu)

    var_dump($_FILES['Logo']);

    e verifica cosa stampa a video quando provi ad effettuare il caricamento dell'immagine: dovresti trovare una serie di valori, incluso il nome temporaneo del file. Potresti avere dei problemi di permessi nel fare ***move_uploaded_file ***quindi, se la procedura indicata ti ha dato tutte conferme, utilizza il comando copy al suo posto, che non ha problemi di permessi.

    Infine, se non risolvi ancora, postaci l'output del comando var_dump che proviamo ad andare più a fondo.
    :ciauz:


  • User Newbie

    Ciao Ceccus, grazie x risposta

    beh, il prob era che non ho specificato

    enctype="multipart/form-data"

    nel form :fumato:

    Nik


  • User Attivo

    effettivamente poteva essere d'aiuto... 😄

    :ciauz: