jospabloorozcomarn
  • 0
Учитель

Загрузка медиафайлов — выберите только один файл

  • 0

Можно ограничить процесс загрузки, чтобы выбрать только один файл. Теперь человек может выбирать различные файлы с ПК, я пытаюсь найти способ ограничить эту функцию только одним файлом.

Заранее спасибо.

Share
  1. WordPress содержит 2 загрузчика мультимедиа. Загрузчик Flash позволяет выбирать несколько файлов, в то время как загрузчик браузера позволяет загружать только один файл за раз.

    Чтобы отключить загрузчик Flash, добавьте следующий фильтр в functions.php

    add_filter('flash_uploader', create_function('$flash', 'return false;'));
    

    РЕДАКТИРОВАТЬ

    После дальнейшего изучения, вероятно, не лучшая идея использовать create_function. Лучшим способом удаления фильтра будет:

    function disable_flash_uplaoder() {
            return $flash = false;
    }
    add_filter( 'flash_uploader', 'disable_flash_uploader', 7 ); 
    
    • 0
  2. Ответ, который дал Крис, хорош, но на самом деле он не ограничивает загрузку только одним файлом, это только один файл за раз, поэтому пользователь может загружать столько, сколько он хочет, но вы также можете ограничить загрузку на флэш-загрузчике только одним файл с помощью wp_handle_upload_prefilter хука, взгляните на ответ Майка на аналогичный вопрос.

    • 0
  3. Вы можете изменить загрузчик Flash так, чтобы он принимал только один файл с помощью BUTTON_ACTION настройки. Вы можете изменить это с помощью конфигурации SWFUpload (которая жестко запрограммирована в WordPress) или с помощью метода setButtonAction() сгенерированного объекта SWFUpload, но это работает только после загрузки файла Flash. Мне удалось это сделать, зацепившись за swfupload_loaded_handler крючок:

    var wpse15264_original_onload = SWFUpload.onload;
    SWFUpload.onload = function() {
        wpse15264_original_onload();
        swfu.addSetting( 'swfupload_loaded_handler', function() {
            this.setButtonAction( SWFUpload.BUTTON_ACTION.SELECT_FILE );
        } );
    }
    

    Вы можете вывести это после кода SWFUpload через post-html-upload-ui хук.

    Этот код не добавляет обработчик к swfupload_loaded_handler событию, он заменяет текущий обработчик. Это не должно быть проблемой, потому что WordPress не использует этот обработчик, но если он когда-нибудь это сделает в будущем, вы должны обязательно сохранить исходный обработчик и также выполнить его (как я сделал с onload обработчиком).

    Конечно, это не мешает людям использовать загрузчик несколько раз. См. ссылку Bainternet для решения этой проблемы.

    • 0

Оставить ответ

You must login to add an answer.