Howto: Drupal Dosya Yükleme Formu

1 Cevap php

Ben zorluk Drupal 6 dosyaları yükler bir form ile bir modül yazmak için nasıl sergiyi yaşıyorum. Kimse bu açıklamaya, ya da bu konuyu iyi bir örnektir / belgelerine beni işaret edebilir?

EDIT:

İşte yapmak ne çalışıyorum tamamen:

  1. Kullanıcı bir. Csv yüklenenler
  2. Modül alanları almak için dosyanın ilk satırı okur
  3. Kullanıcı db alanları ile csv alanları maçları
  4. Her csv satır bir düğüm olarak kaydedilir (önizleme ilk)

Şimdiye kadar, başarıyla 1, 2, ve 4. yapabilirsiniz. Ama bu adımlar (ki nasıl kullanılması gerektiğini $ form_state ['yönlendirme']?) Birbirleriyle etkileşim gerektiğini tam olarak nasıl belirsiz, ve en iyi uygulamalar ne vardır. Ve 3 için, ben oturum veri olarak o kaydetmeniz gerekir?

Nasıl çeşitli adımlar arasında dosya verilerini geçirmek?

Ben node_import var olduğunu biliyorum, ama bu benim için çalıştı asla ve benim hata istekleri dikkate gidin.

2nd EDIT: Ben dosya ile başa çıkmak için gerekli her sayfanın başında ve sonunda bu kullandı:

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

Ben bunu en iyi uygulamaları emin değilim, ama çalışıyor.

1 Cevap

Bu çok zor değil, bazı bilgileri görebilirsiniz here. Sadece bir dosya yükleme ile bir formun bir örneği.

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:

Şimdi file_save_upload işlevini kullanmak dosyayı kaydetmek için:

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:

There's a lot of questions and ways to do the things you described. I wont go to much into the actual code of how to handle a csv file. What I would suggest is that you use the file id to keep track of the file. That would enable you to make urls that take a fid and use that to load the file you want to work on. To get from your form to the next step, you can use the #redirect form property to get your users to the next step. From there is really depends how you do things, what you'll need to do.