Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24
  1. #1

    upload + percorso file in database

    Ciao a tutti. Ho un piccolo problema che non riesco a risolvere. Probabilmente mi sto perdendo in un bicchier d'acqua ma siccome non è da molto che ho iniziato a programmare in php ho ancora qualche dubbio.

    In poche parole, ho creato un piccolo form per l'upload di file (foto/pdf). codice:
    Codice PHP:
    <form action="upload_nuovo.php" method="post" enctype="multipart/form-data">
    <
    div class="div_form">
    <
    label>Nome</label><input type="text" name="nome" size="30" maxlength="30" />
    </
    div>

    <
    div class="div_form">
    <
    label>Foto</label><input type="file" name="file[]" />
    </
    div>

    <
    div class="div_form">
    <
    label>File pdf</label><input type="file" name="file[]" />
    </
    div>

    <
    div class="div_form">
    <
    input type="submit" value="Salva" />
    </
    div>
    </
    form

    Di seguito indico la pagina (upload_nuovo.php) con il codice per l'esecuzione dell'upload.
    La cosa che non riesco a fare è estrarre il percorso del file salvato e inserirlo correttamente, con una query di inserimento, in una tabella creata con i campi "nome", "foto" e "pdf"...dove in foto e pdf andrebbero indicati i due percorsi.
    codice:
    Codice PHP:
    <?php

    $nome
    =$_POST["nome"];


    foreach (
    $_FILES["file"]["error"] as $key => $error) {

        if((
    $nome == "")) {
            print(
    "Inserire tutte le informazioni");
            }
        
        elseif (
    $error == UPLOAD_ERR_OK) {
            
    $tmp_name $_FILES["file"]["tmp_name"][$key];
            
    $name $_FILES["file"]["name"][$key];
            
    move_uploaded_file($tmp_name"../upload/nuovo/$name");
                print(
    "Inserimento avvenuto correttamente");
            }
            
        else {
            print(
    "Inserire tutte le informazioni");
            }

    }


    include(
    "mysql.php");

    mysql_connect($host,$user,$pass) or die ("Impossibile connettersi");

    mysql_select_db("nome_database") or die ("Impossibile selezionare il database");

    mysql_query("insert into nuovo (nome,foto,pdf) values ('$nome','../upload/nuovo/$name','../upload/nuovo/$name')");

    $ultimo_id=mysql_insert_id();
    mysql_close();

    ?>
    Suggerimenti? Thanks
    Stefano
    Creazione siti Internet - Udine: SC web designer

  2. #2
    Utente bannato
    Registrato dal
    Jul 2007
    Messaggi
    368
    codice:
    move_uploaded_file($tmp_name, "../upload/nuovo/$name");
    La variabile "$name" viene vista come testo e non viene risolta in questo modo. Devi concatenarle.
    [code]
    "../upload/nuovo/".$name
    [(code]

  3. #3
    Grazie per la dritta solo che c'è ancora qualcosa che non va.
    Credo il problema stia qui:

    Codice PHP:
    mysql_query("insert into nuovo (nome,foto,pdf) values ('$nome','../upload/nuovo/$name','../upload/nuovo/$name')"); 
    Che valore dovrei impostare per riempire i campi "foto" e "pdf"?
    Così com'è impostato viene indicato il percorso del secondo file su tutti e due i campi.
    E' da un pò che ci sbatto la testa ma non ne vengo fuori...
    Stefano
    Creazione siti Internet - Udine: SC web designer

  4. #4
    Utente bannato
    Registrato dal
    Jul 2007
    Messaggi
    368
    Non ho capito cosa vuoi ottenere, cosa intendi di preciso per nome e per tutti gli altri campi

  5. #5
    Allora, vediamo se riesco ad essere più chiaro.
    La tabella è composta da 3 campi: Nome - Foto - Pdf.

    Per il campo nome non ci sono problemi. I problemi invece ci sono nei campi Foto e Pdf...
    con lo script che ho postato, riesco ad uplodare i files...e fin qui tutto ok.
    Fatto ciò, dovrei inserire nella tabella creata nei rispettivi campi Foto e Pdf il percorso di salvataggio di tali files.
    Purtroppo però sicuramente ho fatto qualcosa che non va in quanto nei due campi mi indica sempre un percorso solo, credo di aver sbagliato qualcosa qui:

    Codice PHP:
    mysql_query("insert into nuovo (nome,foto,pdf) values ('$nome','../upload/nuovo/$name','../upload/nuovo/$name')"); 
    ??
    Stefano
    Creazione siti Internet - Udine: SC web designer

  6. #6
    da quello che hai scritto tu sembra che foto e pdf abbiano lo stesso nome $name...
    possibile?

  7. #7
    No, è quello il problema, che valore devo inserire per far si che ognuno prenda il suo?
    Stefano
    Creazione siti Internet - Udine: SC web designer

  8. #8
    fai due variabili distinte

    $nome_foto = "percorso/".qua ci metti il nome della foto;
    $nome_pdf = "percorso/".qua ci metti il nome del pdf;

    mysql_query("insert into nuovo (nome,foto,pdf) values ('$nome','$nome_foto','$nome_pdf')");

  9. #9
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    ti consiglio, come implicitamente dice beta_persei, di NON mettere il percorso nel DB, cioè questo
    ../upload/nuovo/$name
    ma di mettere solo $name, in modo che da dovunque andrai a chiamare i tuoi files dovrai inserire il percorso in maniera più semplice..


  10. #10
    Di conseguenza devo modificare anche lo script per l'upload dei files?... perchè è da li che con la variabile $name prendo il nome del file... come dovrei modificare quella parte di codice?
    Stefano
    Creazione siti Internet - Udine: SC web designer

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 © 2025 vBulletin Solutions, Inc. All rights reserved.