Medien-Upload – Wählen Sie nur eine Datei

Es ist möglich, den Upload-process einzuschränken, um nur eine Datei auszuwählen. Jetzt kann eine Person verschiedene Dateien von PC auswählen, ich versuche, eine Möglichkeit zu finden, diese function nur auf eine Datei zu beschränken.

Danke im Voraus.

Solutions Collecting From Web of "Medien-Upload – Wählen Sie nur eine Datei"

WordPress enthält 2 Medien-Uploader. Der Flash-Uploader ermöglicht die Auswahl mehrerer Dateien, während der Browser-Uploader nur jeweils eine Datei zulässt.

Um den Flash-Uploader zu deaktivieren, fügen Sie functions.php den folgenden Filter hinzu

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

BEARBEITEN

Nach weiteren Untersuchungen ist es wahrscheinlich keine gute Idee create_function zu verwenden. Eine bessere Möglichkeit, den Filter zu entfernen, wäre:

 function disable_flash_uplaoder() { return $flash = false; } add_filter( 'flash_uploader', 'disable_flash_uploader', 7 ); 

Die Antwort, die Chris gab, ist nett, schränkt den Upload jedoch nicht auf eine Datei ein, sondern nur auf eine Datei. Der Benutzer kann so viele hochladen, wie er möchte, aber Sie können auch den Upload auf den Flash-Uploader auf einen beschränken Datei mit wp_handle_upload_prefilter Haken, casting Sie einen Blick auf Mikes Antwort auf eine ähnliche Frage.

Sie können den Flash-Uploader so ändern, dass nur eine Datei über die Einstellung BUTTON_ACTION akzeptiert wird. Sie können dies über die SWFUpload-Konfiguration (die in WordPress fest codiert ist) oder über die Methode setButtonAction() des generierten SWFUpload-Objekts ändern – dies funktioniert jedoch nur, nachdem die Flash-Datei geladen wurde. Ich habe es geschafft, indem ich mich in den swfupload_loaded_handler Hook 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 ); } ); } 

Sie können dies nach dem SWFUpload-Code über den post-html-upload-ui Hook ausgeben.

Dieser Code fügt dem Ereignis swfupload_loaded_handler keinen Handler swfupload_loaded_handler , er ersetzt den aktuellen Handler. Das sollte kein Problem sein, da WordPress diesen Handler nicht verwendet, aber wenn es jemals in der Zukunft geschieht, sollten Sie sicherstellen, dass der ursprüngliche Handler onload und auch ausgeführt wird (wie ich es mit dem onload Handler gemacht habe).

Natürlich verhindert dies nicht, dass Benutzer den Uploader mehrmals verwenden. Eine Lösung dazu finden Sie in Bainternets Referenz.