web-dev-qa-db-fra.com

Téléchargement de fichiers avec ajax

Existe-t-il un exemple de configuration d'un élément de formulaire avec un fichier de type pour le télécharger via AJAX. Je veux être identique à l'image du champ dans l'article sur le type de nœud.

tHX

5
kkatusic

Peut-être que cela sera utile (dans un module personnalisé):

function testmodule_forma($form, & $form_state) {
    $form['im-container'] = array(
        '#prefix' => '<div id="im-area">',
        '#suffix' => '</div>',
    );

    $form['image_file'] = array(
        '#type' => 'file',
    );

    $form['upload'] = array(
        '#type' => 'submit',
        '#value' => 'upload',
        '#submit' => array('upload_image'),
        '#ajax' => array(
            'callback' => 'upload_image',
            'wrapper' => 'im-area',
            'method' => 'replace',
            'effect' => 'fade',
        ),
    );
    return $form;
}

function upload_image($form, $form_state) {

    $file = file_save_upload('image_file', array('file_validate_extensions' => array('png gif jpg jpeg')), "public://", FILE_EXISTS_REPLACE);
    if ($file) {
        $file->status = FILE_STATUS_PERMANENT;
        file_save($file);
        $form['im-container'] = array(
            '#title' => t('Preview:'),
            '#prefix' => '<div id="im-area">',
            '#markup' => '<img src="sites/default/files/'.$file - > filename.
            '" height="250" width="250" />',
            '#suffix' => '</div>',
        );
    } else {
        drupal_set_message('No file uploaded.');
    }

    return $form['im-container'];
}
10
NemanjaLazic

Si vous utilisez D7, pourquoi écrivez-vous du code désordonné pour accomplir cette tâche?

Dans l'API de formulaire D7, nous avons type = managed_file qui télécharge le fichier en utilisant ajax.

Essayez cet exemple:

$form['image'] = array(
            '#type' => 'managed_file',
            '#title' => t('Upload Image'),
            '#default_value' => '',
            '#required' => TRUE,
            '#description' => t("Upload Image description"),
        );
4
Ravindra Singh