Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    54

    Multi file uploader - problema

    Ciao!
    Dall'area amministrazione ho la possibilita' di inserire nuovi libri con copertina e 2 file pdf.

    Attualmente ho index.php?gestione=aggiungi-libro che mi mostra il form da compilare, con la richiesta dei 3 file tipo

    codice:
    Copertina: <input type="file" name="copertina" />
    
    PDF estratto: <input type="file" name="pdf_estratto" />
    
    PDF sommario: <input type="file" name="pdf_sommario" />
    Quando faccio invia dati, vengo dirottato verso index.php?gestione=controllo-inserzione e mi aggiunge tutti i dati al database correttamente, meno che copertina,pdf_estratto e pdf_sommario oltre a non caricarli neanche nella cartella FTP.

    Qualcuno mi aiuta a realizzare questo multi file uploader? ho provato anche tutti quelli che ci sono in giro per la rete ma non funzionano...

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    se ho ben capito riesci a inserire i dati "testuali" ma non i file... dovresti postare il codice PHP allora

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    54
    nono, non inserisce proprio niente... ne testo, ne carica il file... la dir e' 755 su aruba.

    magari se l'uploader lo facciamo insieme qui e' meglio cosi comprendo bene il funzionamento...
    poi tu sei anche bravissimo a spiegare con i commenti

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709

    Re: Multi file uploader - problema

    Originariamente inviato da zio_hc

    Quando faccio invia dati, vengo dirottato verso index.php?gestione=controllo-inserzione e mi aggiunge tutti i dati al database correttamente, meno che copertina,pdf_estratto e pdf_sommario oltre a non caricarli neanche nella cartella FTP.
    (intanto grazie per il "complimento"... eh eh)

    nel quote che riporto mi sembra di capire che la pagina "aggiunge tutti i dati ... correttamente, meno che" i file... non è così?

    Se c'è già uno script di caricamento postalo.
    Altrimenti posta almeno il form dell'utente.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    54
    lo script c'era ma ne ho provate talmente tante che ho lasciato solo l'input della copertina ma non funziona...

    Il form aggiunge correttamente tutti i dati, meno che i 3 file sia nell'FTP che nel database.

    Ecco il form:

    codice:
    <form action="index.php?gest=controllo-inserzione-libro" method="POST">
    Titolo: <input type="text" name="titolo" />
    
    Autore: <input type="text" name="autore" />
    
    Editore: <input type="text" name="editore" />
    
    ISBN: <input type="text" name="isbn" />
    
    Numero pagine: <input type="text" name="pagine" /> Inserire solo il numero
    
    Rilegatura:
    <select name="rilegatura">
        <option value="brossura">Brossura</option>
        <option value="rilegatura_cucita">Rilegatura cucita</option>
        <option value="copertina_rigida">Copertina rigida</option>
    </select>
    
    Categoria: <input type="text" name="categoria" />
    
    Prezzo: <input type="text" name="prezzo" /> Inserire solo la cifra
    
    Copertina: <input type="file" name="copertina" />
    
    PDF estratto: <input type="file" name="pdf_estratto" />
    
    PDF sommario: <input type="file" name="pdf_sommario" />
    
    Descrizione del libro:
    
    <textarea name="descrizione1" rows="30" cols="70"></textarea>
    
    
    
    <input type="submit" value="Inserisci">
    </form>
    Grazie!

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    nello script di gestione puoi fare (alcune azioni possono essere ridondanti, ma è meglio così):

    Codice PHP:
    $titolo mysql_escape((isset($_POST['titolo']))?($_POST['titolo']):('')); 
    per tutti i campi testuali modificando il nome della variabile e l'indice tra apici anche per autore, editore, etc...

    poi crei la query

    Codice PHP:
    $query "INSERTO INTO nometabella(campotitolo, campoautore, ...) VALUES('$titolo', '$autore', ....)"
    e la fai eseguire

    infine gestisci i file:
    Codice PHP:
    $folder 'percorsocartellaupload';

    if (
    $_FILES["copertina"]["error"] == UPLOAD_ERR_OK) {
      
    $tmp $_FILES["copertina"]["tmp_name"];
      
    $name $_FILES["copertina"]["name"];
      
    move_uploaded_file($tmp"$folder/$name");
    }; 
    l'if lo devi ripetere per tutt'e tre i campi (si potrebbe ottimizzare in tanti modi, ma non ti complico/allungo il brodo), inoltre se il nome del file è già presente sul server dovresti gestirlo da te... un modo spiccio e anteporre un unlink("$folder/$name"); al comando move_uploaded_file per cancellare eventuali presenze precedenti.

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    54
    Ecco il mio codice non funzionante da super noob VVoVe:
    Non carica i file...

    codice:
    <div id="gestione_home">
    <h2>Controllo inserzione</h2>
    
    
    
    <?php 
    if ($_SESSION['autorizzato'] != 1) { header('Location:index.php'); }
    ?>
    <?php 
    $titolo = str_replace(" ","_",$_POST['titolo']);
    $autore = htmlspecialchars(stripslashes($_POST['autore']));
    $editore = htmlspecialchars(stripslashes($_POST['editore']));
    $isbn = htmlspecialchars(stripslashes($_POST['isbn']));
    $pagine = htmlspecialchars(stripslashes($_POST['pagine']));
    $rilegatura = htmlspecialchars(stripslashes($_POST['rilegatura']));
    $prezzo = htmlspecialchars(stripslashes($_POST['prezzo']));
    $descrizione1 = htmlspecialchars(stripslashes($_POST['descrizione1']));
    if ($titolo == "") { echo "Ci sono uno o piu' campi vuoti! Torna indietro e modifica!"; }
    elseif ($autore == "") { echo "Ci sono uno o piu' campi vuoti! Torna indietro e modifica!"; }
    elseif ($editore == "") { echo "Ci sono uno o piu' campi vuoti! Torna indietro e modifica!"; }
    elseif ($isbn == "") { echo "Ci sono uno o piu' campi vuoti! Torna indietro e modifica!"; }
    elseif ($pagine == "") { echo "Ci sono uno o piu' campi vuoti! Torna indietro e modifica!"; }
    elseif ($prezzo == "") { echo "Ci sono uno o piu' campi vuoti! Torna indietro e modifica!"; }
    elseif ($descrizione1 == "") { echo "Ci sono uno o piu' campi vuoti! Torna indietro e modifica!"; }
    elseif ($categoria == "") { echo "Ci sono uno o piu' campi vuoti! Torna indietro e modifica!"; }
    else {
    mysql_query("INSERT INTO libri (titolo,autore,editore,isbn,pagine,rilegatura,prezzo,descrizione1,pdf_estratto,pdf_sommario,copertina,categoria) values ('$titolo','$autore','$editore','$isbn','$pagine','$rilegatura','$prezzo','$descrizione1','$pdf_estratto','$pdf_sommario','$copertina','$categoria');");
    echo "Libro inserito!<a href=\"../catalogo-libri.html\">Guarda il catalogo dei libri</a> oppure <a href=\"index.php\">torna indietro</a>";
    $copertine = '../immagini/covers/'; 
    if ($_FILES["copertina"]["error"] == UPLOAD_ERR_OK) { 
      $tmp = $_FILES["copertina"]["tmp_name"]; 
      $name = $_FILES["copertina"]["name"]; 
      move_uploaded_file($tmp, "$copertine/$name"); 
    };
    $pdfestratto = '../pdf_estratto/';
    if ($_FILES["pdf_estratto"]["error"] == UPLOAD_ERR_OK) { 
      $tmp = $_FILES["pdf_estratto"]["tmp_name"]; 
      $name = $_FILES["pdf_estratto"]["name"]; 
      move_uploaded_file($tmp, "$pdfestratto/$name"); 
    };
    $pdfsommario = '../pdf_sommario/';
    if ($_FILES["pdf_sommario"]["error"] == UPLOAD_ERR_OK) { 
      $tmp = $_FILES["pdf_sommario"]["tmp_name"]; 
      $name = $_FILES["pdf_sommario"]["name"]; 
      move_uploaded_file($tmp, "$pdfsommario/$name"); 
    };
    }
    ?>
    </p>
    </div>

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    sembra grosso modo corretto... dopo la riga che definisce la var. $copertine aggiungi una riga var_export($_FILES);print'
    ';
    e per ogni riga con "move_uploaded_file" aggiungi subito prima print $name.'
    ';
    , anteponi un $x= (p.es.: $x = move_uploaded_file(...)) e subito dopo metti print $x.'
    ';


    in questo modo stampi a video il contenuto di $_FILES - postalo qui - e per ciascun file vediamo se viene eseguito l'IF e il risultato dell'azione.

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    54
    modificato cosi e mi restituisce array()

    codice:
    $copertine = '../immagini/covers/';
    var_export($_FILES);print'
    '; 
    if ($_FILES["copertina"]["error"] == UPLOAD_ERR_OK) { 
      $tmp = $_FILES["copertina"]["tmp_name"]; 
      $name = $_FILES["copertina"]["name"]; 
      print $name.'
    ';
      $x = move_uploaded_file($tmp, "$copertine/$name"); 
      print $x.'
    ';
    };
    $pdfestratto = '../pdf_estratto/';
    if ($_FILES["pdf_estratto"]["error"] == UPLOAD_ERR_OK) { 
      $tmp = $_FILES["pdf_estratto"]["tmp_name"]; 
      $name = $_FILES["pdf_estratto"]["name"]; 
      print $name.'
    ';
      $x = move_uploaded_file($tmp, "$pdfestratto/$name"); 
      print $x.'
    ';
    };
    $pdfsommario = '../pdf_sommario/';
    if ($_FILES["pdf_sommario"]["error"] == UPLOAD_ERR_OK) { 
      $tmp = $_FILES["pdf_sommario"]["tmp_name"]; 
      $name = $_FILES["pdf_sommario"]["name"]; 
      print $name.'
    ';
      $x = move_uploaded_file($tmp, "$pdfsommario/$name"); 
      print $x.'
    ';
    };

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    allora la var. $_FILES è vuota e quindi non popolata correttamente... a questo punto verifica la configurazione php

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.