• User

    Upload multiplo file e salvataggio urls nel database

    Ciao a tutti,
    ho creato uno script per pubblicare delle schede prodotto.
    Nella pagina di inserimento ci sono diversi input tra cui l'upload di immagini per comporre poi una galleria immagini.
    Attualmente carico l'immagine sul server e poi salvo l'url della stessa all'interno del database insieme al contenuto degli altri input.
    Il mio problema l'upload multiplo di files ossia caricare diversi files sul server e salvarne i rispettivi urls all'interno del database. In Vi riporto il codice per maggiore chiarezza.

    Pagina di inserimento:
    [HTML]
    <form action="insert.php" method="post" enctype="multipart/form-data">

    <input type="text" name="nome_immobile" id="nome_immobile" size="20" placeholder="Nome immobile">
    <input type="text" name="descrizione_breve" id="descrizione_breve" size="20" placeholder="Descrizione breve">
    <textarea type="text" name="descrizione" id="descrizione" size="40" placeholder="Descrizione"></textarea>
    <input type="text" name="prezzo" id="prezzo_1" size="20" placeholder="Prezzo"/>
    <input type="checkbox" name="feature" id="feature" value="1"/> Immobile in evidenza
    <input type="file" name="file" id="file">
    <input type="submit" name="submit" value="Pubblica"/>

    </form>[/HTML]

    insert.php
    [PHP]
    <?phpheader('Content-type: text/html;charset=utf-8');
    include '../auth.inc.php';include '../db.inc.php';
    $db = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD) or die ('Unable to connect. Check your connection parameters.');mysql_select_db(MYSQL_DB, $db) or die(mysql_error($db));

    // filtra i valori in arrivo

    $nome_immobile = (isset($_POST['nome_immobile'])) ? trim($_POST['nome_immobile']) : '';
    $descrizione_breve = (isset($_POST['descrizione_breve'])) ? trim($_POST['descrizione_breve']) : '';
    $descrizione = (isset($_POST['descrizione'])) ? trim($_POST['descrizione']) : '';
    $prezzo = (isset($_POST['prezzo'])) ? trim($_POST['prezzo']) : '';
    $feature = (isset($_POST['feature'])) ? trim($_POST['feature']) : '';

    // -------------------------------
    // 1. controllo i parametri dell'immagine
    // 2. salvo l'url assoluto nella variabile $imgurl
    // -------------------------------

    $allowedExts = array("gif", "jpeg", "jpg", "png");
    $temp = explode(".", $_FILES["file"]["name"]);
    $extension = end($temp);

    if ((($_FILES["file"]["type"] == "image/gif")
    || ($_FILES["file"]["type"] == "image/jpeg")
    || ($_FILES["file"]["type"] == "image/jpg")
    || ($_FILES["file"]["type"] == "image/pjpeg")
    || ($_FILES["file"]["type"] == "image/x-png")
    || ($_FILES["file"]["type"] == "image/png"))
    && ($_FILES["file"] < 2000000)
    && in_array($extension, $allowedExts))
    {
    if ($_FILES["file"]["error"] > 0)
    {
    echo "Non è possibile caricare l'immagine per il seguente motivo: " . $_FILES["file"]["error"] . "<br>";
    }
    else
    {
    if (file_exists("upload/" . $_FILES["file"]["name"]))
    {
    echo $_FILES["file"]["name"] . " Il nome dell'immagine risulta già presente nel database. ";
    }
    else
    {
    move_uploaded_file($_FILES["file"]["tmp_name"],
    "../media/" . $_FILES["file"]["name"]);
    $imgurl="media/".$_FILES["file"]["name"];
    }
    }
    }
    else
    {
    echo "Il file che si cerca di caricare non è valido";
    }

    // -------------------------------
    // PUBBLICAZIONE
    // -------------------------------

    if (isset($_POST['submit']) && $_POST['submit'] == 'Pubblica')
    {
    $errors = array();
    // verifica che i campi obbligatori siano stati compilati
    if (empty($nome_immobile))
    {
    $errors[] = 'Devi inserire un nome prodotto!';
    }
    if (empty($descrizione)) {
    $errors[] = 'Devi inserire una descrizione!';
    }
    if (count($errors) > 0)
    {
    echo '<p><strong style="color:#FF000;">Non Ë possibile procedere ' .
    'con la creazione del prodotto.</strong></p>';
    echo '<p>Correggere i seguenti errori:</p>';
    echo '<ul>';

    foreach ($errors as $error) {
    echo '<li>' . $error . '</li>';
    }
    echo '</ul>';
    } else {
    // nessun errore, perciò inserisce le informazioni nel database.

    $immobile_id = mysql_insert_id($db);
    $query = 'INSERT INTO immobili (immobile_id, nome_immobile, descrizione_breve, descrizione, prezzo, feature, imgurl)
    VALUES (' . $immobile_id . ', ' .
    '"' . mysql_real_escape_string($nome_immobile, $db) . '", ' .
    '"' . mysql_real_escape_string($descrizione_breve, $db) . '", ' .
    '"' . mysql_real_escape_string($descrizione, $db) . '", ' .
    '"' . mysql_real_escape_string($prezzo, $db) . '", ' .
    '"' . mysql_real_escape_string($feature, $db) . '", ' .
    '"' . mysql_real_escape_string($imgurl, $db) . '")';
    $result = mysql_query($query, $db) or die(mysql_error());

    header('Refresh: 0; URL=index.php');
    die();
    }
    }
    ?>[/PHP]

    Grazie in anticipo,
    Alessandro