Howto: Drupal File Caricare Il Modulo

Sto avendo difficoltà a capire come scrivere un modulo con un modulo che carica i file, in Drupal 6. Qualcuno può spiegare questo, o punto me un buon esempio di documentazione discutendo?

EDIT:

Qui è interamente quello che sto cercando di fare:

  1. Utente carica un .csv
  2. Modulo di legge la prima riga del file per ottenere i campi
  3. Utente corrisponde campi csv con db campi
  4. Ogni csv linea viene salvato come un nodo (anteprima)

Finora, posso fare 1, 2, e 4 con successo. Ma è chiaro esattamente come la procedura dovrebbe interagire con gli altri ($form_state[‘redirect’]? come dovrebbe essere usato?), e quali sono le migliori pratiche. E per 3, devo salvare come dati di sessione?

Come faccio a passare i file di dati tra i vari passaggi?

So che node_import esiste, ma non ha mai funzionato per me, e il mio bug richieste vanno ignorati.

2nd EDIT: ho usato questo all’inizio e alla fine di ogni pagina in cui è necessario trattare con il file:

$file = unserialize($_SESSION['file']);
//alter $file object
$_SESSION['file'] = serialize(file);

Non sono sicuro che non le migliori pratiche, ma è stato di lavoro.

InformationsquelleAutor Nick Heiner | 2009-08-10



One Reply
  1. 12

    Questo non è troppo difficile, è possibile vedere alcune info qui. Un esempio di modulo, con un upload di file.

    function myform_form($form_state) {
        $form = array('#attributes' => array('enctype' => 'multipart/form-data'));
        $form['file'] = array(
            '#type' => 'file',
            '#title' => t('Upload video'),
            '#size' => 48,
            '#description' => t('Pick a video file to upload.'),
        );
        return $form;
    }

    EDIT:

    Ora per salvare il file, utilizzare la file_save_upload funzione:

    function myform_form_submit($form, $form_state) {
        $validators = array();
        $file = file_save_upload('file', $validators, 'path');
        file_set_status($file, FILE_STATUS_PERMANENT);
    }

    2nd EDIT:

    C’è un sacco di domande e modi per fare le cose che hai descritto. Io non andare troppo nel codice effettivo di come gestire un file csv. Quello che vorrei suggerire è che si utilizza l’id di file per tenere traccia dei file. Che consentono di rendere gli url che prendere un fid e l’uso che per caricare il file che si desidera lavorare.
    Per ottenere dal vostro modulo per il passo successivo, è possibile utilizzare il #redirect di proprietà del form per ottenere i vostri utenti per il passo successivo. Da lì è davvero dipende da come si fanno le cose, che cosa devi fare.

    • sì, ho con nessuna difficoltà. Tuttavia, una volta che il file è stato caricato, come si fa a salvarlo e usarlo in futuro funzioni?
    • dopo edit: ok, e ora, se volevo, dire, visualizzare il file di valori sulla pagina?
    • Si può essere un po ‘ più preciso. Il Rendering di un’immagine, un video o un file txt richiedono approcci molto diversi. Cosa stai cercando di fare, che non può essere fatto con CCK file di campo? Comunque $file oggetto file, così si dovrebbe essere in grado di fare quello che si vuole.
    • a cura di precisione
    • Io sono novizio in drupal, se ho un form di registrazione con il campo più lungo con upload button come faccio a raggiungere questo obiettivo. Dal momento che sono già dichiarando ` $form = array(‘#attributes’ => array(‘enctype’ => ‘multipart/form-data’));` ? …. non sarà per influenzare gli altri campi del form

Lascia un commento