Fileupload für Bilder mit jQuery – dank Ajax mit Vorschaufunktion
Web Entwicklung November 28th, 2008Gerade wenn es um sogenannten user generated content geht, ist es immer schön, wenn man eine Vorschaufunktion anbieten kann. Ein Knopf “Vorschau” ist ziemlich 1990 – es lebe das Web 2.0 mit Ajax, jQuery und vielen Hacks.
Ich hatte bereits darüber gebloggt wie man mittels jQuery und etwas Tricksen einen “Ajax Fileupload” realisert. Noch schöner ist es natürlich, wenn der User sofort Feedback bekommt, wie sein ausgewähltes Bild wohl aussehen würde. Dazu lädt man das Bild schon direkt nachdem der User eine Datei ausgewählt hat, und zeigt diese an. An Browser-Caches muss man vielleicht noch denken, aber auch hier kann JavaScript bzw. jQuery helfen.
Das Vorgehen:
- Man hängt einen Listener an die Change Methode des Input Felds
- Wie in meinem letzten Beitrag beschrieben wird der Upload über ein Iframe realisiert
- Nun biegt man noch die Bild URL um und zeigt somit das Resultat an
Hier der Quellcode: (das Formular heißt “logoUploadForm”, das input Feld für das Image File “logo”.
Ajax Fileupload handling – und Bild URL umbiegen nach dem Upload.
//handle file upload with hidden iframe
jQuery("#logoUploadForm").submit( function(data)
{
var submittingForm = jQuery( this );
var frameName = ("upload"+(new Date()).getTime());
var uploadFrame = jQuery("<iframe name=\""+frameName+"\" />");
uploadFrame.css("display", "none");
uploadFrame.load(function(data){
//submit is complete here
setTimeout(function(){
//update image
var imageDiv = jQuery("#print_logoImage");
var logoUrl = imageDiv.attr("src").split("?")[0];
imageDiv.attr("src", logoUrl+"?"+ (new Date()).getTime());
//remove hidden upload frame
uploadFrame.remove();},1000);
});
jQuery("body:first").append(uploadFrame);
//setup complete
submittingForm.attr("target", frameName);
});
Hier noch der Code zum “sofort upload”:
jQuery("input[name=logo]").change(function (){
jQuery("#logoUploadForm").submit();
});
Das wars – ausprobieren!
- Ajax File upload mit jQuery – ohne DWR
- jQuery: HTML Inhalt einfärben
- Internet Explorer (IE) 6 und das Bilder Caching
- SpringSource/Vmware: FAIL dank Google Analytics
- Firefox: “Call” objekt Fehler (FirePHP)
- GWT: Google Web Toolkit wird erwachsen

Juni 15th, 2009 at 21:10
Hi,
leider schaffe ich es nicht, denn Code umzusetzen. Bin jquery Neuling. Könntest Du evtl. ein Beispiel posten oder mir per Mail zusenden?
Vielen Dank!
April 13th, 2010 at 11:20
Hy, könntest du bitte ein Sample veröffentlichen, bzw. per Mail zusenden?
Vielen Dank!
Juli 1st, 2010 at 13:41
was für ne ID ist ‘#print_logoImage’ ?