Visualizzazione risultati 1 fino 5 di 5

Discussione: upload di UN file in DUE cartelle con method="POST"

  1. #1
    Guest

    Predefinito upload di UN file in DUE cartelle con method="POST"

    ...un saluto a tutti...

    Sono due giorni che cerco di fare upload di un file all'interno di due cartelle...

    So fare l'upload di UN file in UNA cartella con i due semplici file che seguono...

    form.html:

    Codice HTML:
    <form enctype="multipart/form-data" action="upload.php" method="POST">
    <input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
    Seleziona il file da uploadare: <input name="uploadedfile" type="file" /><br />
    <input type="submit" value="Upload File" />
    </form>
    upload.php:

    Codice PHP:
    <?php
    $target_path
    = "../immagini/";

    $target_path = $target_path . basename( $_FILES['uploadedfile']['name']);

    if(
    move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    echo
    "Il file ". basename( $_FILES['uploadedfile']['name']).
    " è stato uploadato con successo!";
    } else{
    echo
    "Si è verificato un errore, prova ancora!";
    }
    ?>

    Ma se voglio uploadare in due cartelle?
    mi hanno detto che posso solo copiare il file in un'altra destinazione dopo averlo uploadato...

    Mi sembra logico, ma non sono in grado...
    nel senso che so copiare un file di cui conosco path, nome ed estensione...

    es:
    Codice HTML:
    $source = "./test.txt";
    $destination = "./copy.txt";
    
    copy($source, $destination)
    ma con un file che ho appena uploadato? come faccio?

    Qualcuno ha cinque minuti per aiutrami ad integrare copy() nel codico di upload.php che posto sopra in modo che il file selezionato venga uploadato in ../immagini/ e poi copiato in ../immagini_bis/

    grazie comunque e in anticipo

  2. #2
    Guest

    Predefinito

    Ma guarda che conosci benissimo sia il path che il nome del file:

    cartella di provenienza: $target_path
    nome file completo: $_FILES['uploadedfile']['name']

    Non ti serve altro.


    Ciao!

  3. #3
    Guest

    Predefinito

    ma è la prima cosa che ho cercato di fare...

    però non mi funziona

    mi restituisce errori su errori

    dove sta l'errore?

    Codice PHP:
    <?php
    $target_path
    = "immagini/";

    $target_path = $target_path . basename( $_FILES['uploadedfile']['name']);

    if(
    move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    echo
    "Il file ". basename( $_FILES['uploadedfile']['name']).
    " è stato uploadato con successo!";
    } else{
    echo
    "Si è verificato un errore, prova ancora!";
    }
    ?>

    <?php
    $source
    = "$target_path/$_FILES['uploadedfile']['name']";
    $destination = "altreimmagini/$_FILES['uploadedfile']['name']";

    if (!
    copy($source, $destination)) {
    echo
    "Copia di $file non riuscita ...\n";
    }
    ?>

  4. #4
    Guest

    Predefinito

    L'errore sta nel fatto che $target_path diventa tutt'uno con il nome del file, cosa sbagliata anche concettualmente, perchè se una variabile si chiama path non bisogna metterci anche il nome del file, che in questo caso è l'oggetto da trattare.

    Devi decidere se trattare sempre $target_path con incluso il nome del file, oppure tenere le duce cose separate.
    Il mio consiglio è di adottare la seconda opzione.


    Ciao!

  5. #5
    Guest

    Predefinito

    hey debug...
    GRAZIE MILLE!!
    sei stato molto prezioso

    EDIT: posto la soluzione per i princiapianti come me...

    il sistema uploada UN file in DUE cartelle, ma attenzione perché il codice è un po' sporco, o meglio potrebbe essere migliorato... (filtrare il tipo di file, checkare errori con precisione, sintassi più logica(vedi risposta di debug), ecc.)
    ...se qualcuno capace vuole apportare migliorie e postare il codice, faccia pure...

    un saluto a tutti e grazie mille!!


    form.html:
    Codice HTML:
    <form enctype="multipart/form-data" action="upload.php" method="POST">
    <input type="hidden" name="MAX_FILE_SIZE" value="2097152" />
    Seleziona il file da uploadare: <input name="uploadedfile" type="file" /><br />
    <input type="submit" value="Upload File" />
    </form>
    upload.php:
    Codice PHP:
    <?php
    $target_uno
    = "cartella_uno/";
    $target_due = "cartella_due/";

    $target_uno = $target_uno . basename( $_FILES['uploadedfile']['name']);
    $target_due = $target_due . basename( $_FILES['uploadedfile']['name']);

    $source = "$target_uno";
    $destination = "$target_due";


    if(
    move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_uno)) {
    echo
    "Il file ". basename( $_FILES['uploadedfile']['name']).
    " è stato uploadato con successo!";
    } else{
    echo
    "Si è verificato un errore!";
    }

    if (!
    copy($source, $destination)) {
    echo
    "Copia di $file non riuscita...";
    }
    ?>
    Ultima modifica di debug : 24-10-2008 alle ore 12.21.39

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •