• User Attivo

    inserimento di più immagini

    Ciao a tutti, mi trovo davanti un codice non scritto da me,
    anche perchè a dire il vero non avrei saputo farlo.
    si tratta di upload immagini
    il codice come stava scritto funzionava correttamente, solo che mi dava la possibilità di inserire un immagine per volta, io non ho fatto altro che inserire un ciclo for per far si che i campi dove raccogliere le immagine diventassero 4, adesso il problema lo incontro quando procedo all'inserimento in quanto a funzionare è sempre uno, lo so che bisoga fare qualcosa dove effettua l'inserimento, ma sono sincero non so dove ettere le mani, chiedo un vostro aiuto

    di seguito lo script
    [PHP]
    <?php
    class maxUpload{
    var $uploadLocation;

    function maxUpload(){
        $this->uploadLocation = getcwd().DIRECTORY_SEPARATOR;
    }
    function setUploadLocation($dir){
        $this->uploadLocation = $dir;
    }
    
    function showUploadForm($msg='',$error=''){
    

    ?>
    <div id="container">
    <div id="header"><div id="header_left"></div>
    <div id="header_main">Importa Immagine</div><div id="header_right"></div></div>
    <div id="content">
    <?php
    if ($msg != ''){
    echo '<p class="msg">'.$msg.'</p>';
    } else if ($error != ''){
    echo '<p class="emsg">'.$error.'</p>';
    }
    ?>
    <form action="" method="post" enctype="multipart/form-data" >
    <?php
    for($i=1; $i<5; $i++)
    {
    echo"<center>
    <label>File:
    <input name='myfile' type='file' size='30' />
    </label>";
    }
    ?>
    <label>
    <input type="submit" name="submitBtn" class="sbtn" value="Upload" />
    </label>
    </center>
    </form>
    </div>
    <div id="footer"></div>
    </div>
    <?php
    }
    function uploadFile(){
    if (!isset($_POST['submitBtn'])){
    $this->showUploadForm();
    } else {
    $msg = '';
    $error = '';

            //Check destination directory
            if (!file_exists($this->uploadLocation)){
                $error = "Directory inesistente!";
            } else if (!is_writeable($this->uploadLocation)) {
                $error = "Impossibile scrivere in tale directory!";
            } else {
                $target_path = $this->uploadLocation . basename( $_FILES['myfile']['name']);
                if(@move_uploaded_file($_FILES['myfile']['tmp_name'], $target_path)) {
                    $msg = basename( $_FILES['myfile']['name']).
                    " Immagine caricata con successo!";
                } else{
                    $error = "Operazione non riuscita!";
                }
            }
            $this->showUploadForm($msg,$error);
        }
    }
    

    }
    ?>
    [/PHP]

    grazie per l'aiuto
    ciao da danny


  • Consiglio Direttivo

    ciao danny1975

    facendo così non fai altro che creare 4 input box uguali (myfile)
    dovresti chiamarli differentemente, ma di conseguenza dovresti pure variare il codice di upload per riconoscere queste nuove entità 😉

    [php]echo"<center>
    <label>File:
    <input name='myfile".$i."' type='file' size='30' />
    </label>";[/php]


  • User Attivo

    ciao. grazie per il consiglio,
    ciò che hai detto è difficile farlo?
    potresti darmi una mano?

    grazie da danny


  • Consiglio Direttivo

    Credo bisogni ciclare questo pezzo facendo passare l'$i come prima 😉

    [php]$target_path = $this->uploadLocation . basename( $_FILES['myfile']['name']);
    if(@move_uploaded_file($_FILES['myfile']['tmp_name'], $target_path)) {
    $msg = basename( $_FILES['myfile']['name']).
    " Immagine caricata con successo!";[/php]


  • User Attivo

    ciao, niente da fare, non riesco ad uscirne

    chi mi può aiutare?

    grazie da danny


  • User Attivo

    Prova con
    for($x=1;$x<5;$x++){
    echo"<center>
    <label>File:
    <input name='".$i."' type='file' size='30' />
    </label>";
    }
    $array_files=$_POST;
    $num=count($array_files);//conto il numero di campi nell'array
    for($i=0;$i<$num;$i++)
    {
    $target_path = $this->uploadLocation . basename( $_FILES*['name']);
    if(@move_uploaded_file($_FILES*['tmp_name'], $target_path)) {
    $msg = basename( $_FILES*['name']).
    " Immagine caricata con successo!";
    }


  • User Attivo

    ciao, questa è la pagina identata correttamente con il tuo suggerimento
    [PHP]
    <?php
    class maxUpload
    {
    var $uploadLocation;
    function maxUpload()
    {
    $this->uploadLocation = getcwd().DIRECTORY_SEPARATOR;
    }
    function setUploadLocation($dir)
    {
    $this->uploadLocation = $dir;
    }
    function showUploadForm($msg='',$error='')
    {
    ?>
    <div id="container">
    <div id="header"><div id="header_left"></div>
    <div id="header_main">Importa Immagine</div><div id="header_right"></div></div>
    <div id="content">
    <?php
    if ($msg != '')
    {
    echo '<p class="msg">'.$msg.'</p>';
    }
    else if ($error != '')
    {
    echo '<p class="emsg">'.$error.'</p>';
    }
    ?>
    <form action="" method="post" enctype="multipart/form-data" >
    <?php
    for($x=1; $x<5; $x++)
    {
    echo"<center>
    <label>File:
    <input name='".$i."' type='file' size='30' />
    </label>";
    }
    ?>
    <label>
    <input type="submit" name="submitBtn" class="sbtn" value="Upload" />
    </label>
    </center>
    </form>
    </div>
    <div id="footer"></div>
    </div>
    <?php
    }
    function uploadFile()
    {
    if (!isset($_POST['submitBtn']))
    {
    $this->showUploadForm();
    }
    else
    {
    $msg = '';
    $error = '';
    //Check destination directory
    if (!file_exists($this->uploadLocation))
    {
    $error = "Directory inesistente!";
    }
    else if (!is_writeable($this->uploadLocation))
    {
    $error = "Impossibile scrivere in tale directory!";
    }
    else
    {
    $array_files=$_POST;
    $num=count($array_files);//conto il numero di campi nell'array
    for($i=1; $i<$num); $i++)
    {
    $target_path = $this->uploadLocation . basename( $_FILES[myfile*]['name']);
    if(@move_uploaded_file($_FILES[myfile*]['tmp_name'],$target_path))
    {
    $msg = basename( $_FILES[myfile*]['name']).
    " Immagine caricata con successo!";
    }
    }
    else
    {
    $error = "Operazione non riuscita!";
    }
    }
    $this->showUploadForm($msg,$error);
    }
    }
    }
    ?>
    [/PHP]

    mi da questo errore

    
    
    
    **Parse error**: parse error, expecting `';'' in **c:\programmi\easyphp1-8\www\follidea\gestione\upload\maxUpload.class.php** on line **74**
    
    
    

    linea 74 e dove inizia il ciclo for con $i
    visto cosi sembra corretto


  • User Attivo

    Modifica il codice in alto cosi:
    <form action="" method="post" enctype="multipart/form-data" >
    <?php
    for($x=1; $x<5; $x++)
    {
    echo"<center>
    <label>File:
    <input name='".$i."' type='file' size='30' />
    </label>";
    }
    ?>
    <label>
    <input type="submit" class="sbtn" value="Upload" />
    </label>
    </center>
    </form>

    E il ciclo for cosi:
    <?php

        $num=count($_POST);//conto il numero di campi nell'array
        for($i=1;$i<$num;$i++)
         {
    

    echo $_POST*."<br>\n";
    }
    ?>

    Avevo messo un altra parentesi XD:

        for($i=1;$i<$num);$i++)