Tag Archiv: upload

Formulare mit jQuery – die umfassende Serie

Wie wichtig das Thema Fomulare und jQuery ist, fällt uns beim regelmäßigen überfliegen unserer Blog Statistiken immer wieder auf. Viele der Suchanfragen über Google beinhalten Keywords die mit jQuery und Formularen zu tun haben.
Auch die Seiten welche mitunter die meisten Zugriffe haben gehen in diese Richtung.
Wir wollen dem ganzen Rechnung tragen und starten heute eine langfristige und ausführliche Serie zum gesamten Thema “Formulare und jQuery”.
Die Serie wird aus mehreren Teilen bestehen und sich wie folgt aufgliedern:

  • Übersicht über aktuelle Form-Validaton Scripts.
  • Überblick über die wichtigsten Funktionen die jQuery für die Validierung bietet.
  • Tutorial “Eigenes Validation-Script mit jQuery erstellen”.
  • Übersicht über aktuelle jQuery-Plugins zum verarbeiten von Formulardaten per AJAX.
  • Tutorial “Eigenes jQuery-Plugin zum verarbeiten von Formulardaten per AJAX inkl. Dateiupload”.
  • Überblick über die wichtigsten Funktionen die jQuery zum modifizieren von Formularen bietet.
  • Übersicht zum Thema “customized Forms”. Schönere Formulare mit jQuery.
  • Übersicht zum Thema “weiterführende Formulartechniken”.  Autocomplete, In Place Editing, Date Picker, ToolTips, doppeltes versenden verhindern und ein paar weitere Kleinigkeiten.

Zum Abschluss der Serie werden wir euch noch unser neues Formular-Plugin vorstellen an dem wir momentan mit Hochdruck arbeiten. Soviel vorab.

Heute wollen wir gleich mit Teil 1 – “Übersicht über aktuelle Form-Validaton Scripts beginnen.

Ajax Datei-Upload mit jQuery

Eine geschickte und schnelle Methode um den Upload von Dateien in Formularen zu erledigen ist wie so oft Ajax. Ein nettes Plugin dafür gibt es auf http://valums.com/ajax-upload/, welches zudem auch Multiple Uploads unterstützt.
Das Plugin glänzt nicht nur durch seine einfache Handhabung, auch lässt sich damit das lästige Problem der Gestaltung von Uploadformularfeldern, also “input type=”file”..” in den Griff bekommen. Auf diese Felder greift das CSS oft nicht wie es sollte usw.

Auf was ihr allerdings achten solltet ist, dass die Dateien, die mit dem Plugin schon hochgeladen wurden, bevor der Submit abgesetzt, bzw. vor dem Abschicken des Formulars auf dem Server liegen, während die restlichen POST Daten eben erst auf Click eines Absenden Buttons an ein Skript weitergereicht werden. Kurz gesagt, wenn Upload mit Ajax und das Formular als Method Attribut GET/POST hat, muss man aufpassen. Das heißt es sollte überprüft werden ob die hochgeladenen Bilder auch tatsächlich genutzt werden und der User nicht nur einfach wild Dateien hochgeladen hat ohne Das Formular auszufüllen.

Screeshot der Demo:
ajax_upload

Kurz zu den Bestandteilen des Codes:

- Der HTML Teil

1
2
3
 
<!-- Anlegen eines einfachen Divs auf das später die Upload Funktion gelegt wird -->
<div id="upload_button">Upload</div>

- Der Javascript Teil (weitere js-Dateien werden nicht benötigt)

?View Code JAVASCRIPT
1
2
3
4
5
6
7
 
<script src="ajaxupload.3.1.js" type="text/javascript">
<script type="text/javascript">
    $(document).ready( function() {
         new AjaxUpload('upload_button', {action: 'upload.php'});
    });
</script>

Der Ajaxupload kann auch durch Callback-Funktionen und andere Parameter eingestellt werden. Der Code auf der englischen Website ist selbsterklärend. Fragen könnt ihr auch hier stellen.

- Nach abesenden der Daten an “upload.php” geht es an die serverseite Verarbeitung

1
2
3
4
5
6
7
8
9
10
11
 
$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
 
//move_uploaded_file ist die Standard PHP-Funktion um Dateien auf dem Server zu verarbeiten
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
  echo "success";
} else {
  // Als echo keinesfalls false benutzen. Führt zu Konflikten mit dem Ajax-Request
  echo "error";
}

Auf der Valums Website gibt es ebenfalls Beispiele für Ruby sowie Coldfusion.

Die Demo findet ihr hier

uploadify – a file upload plugin for jQuery

Wer kennt das nicht!? Die Suche nach einem geeigneten Upload-Script oder Plugin gestaltet sich manchmal doch schwerer als vermutet.
Trotz der Vielzahl an Scripts und Plugins die es gibt, geht es zumindest mir so das immer der ein oder andere Wunsch offen bleibt.
Z.B. Kein ladebalken, oder keine Unterstüztung von mehreren Dateien usw.

Deshalb möchte ich euch kurz uploadify vorstellen. Ein jQuery-Plugin welches zum einen leicht zu integrieren ist und zum anderen alles besitzt was man sich so wünscht.
Upload von einem odere mehreren Files, Ladebalken, und eine unglaubliche Anzahl von Einstellmöglichkeiten.

Der einzige Wehrmutstropfen, wenn überhaupt, ist die Tatsache das der Loader Flash benötigt.

Ein kleines Beispiel für die Implementierung:

?View Code JAVASCRIPT
1
2
3
4
5
6
7
8
9
$(document).ready(function() {
     $('#fileInput').fileUpload ({
          'uploader'  : 'uploader.swf',
          'script'    : 'upload.php',
          'cancelImg' : 'cancel.png',
          'auto'      : true,
          'folder'    : '/uploads'
     });
});

Eine Demo des ganzen findet man hier.