2010-07-12 15 views
3

J'utilise Uploadify pour télécharger plusieurs images sur le serveur.Firefox 3.6 se bloque en essayant d'afficher une vignette

Je souhaite afficher les vignettes des images avant les photos sont réellement téléchargées sur le serveur, en fonction de this. J'utilise Firefox 3.6.6.

Voici comment je pensais le faire:

$('#fileInput').uploadify({ 
    ... 
    onSelect: function(event, queueID, fileObj) { 
     var img = document.createElement("img"); 
     img.classList.add("obj"); 
     img.file = file; 
     document.getElementById("ThumbnailsArea").appendChild(img); 
     var reader = new FileReader(); 
     reader.onload = (function(aImg) { return function(e) { aImg.src = e.target.result; }; })(img); 
     reader.readAsDataURL(fileObj); // This crashes Firefox 
     return true; 
    } 
    ... 
}); 

La raison de l'accident, je crois, est que fileObj est pas vraiment un file comme here.

Est-ce que quelqu'un sait comment obtenir le vrai file en utilisant Uploadify?

J'ai vraiment besoin de conseils, parce que je suis totalement coincé avec ça!

Merci beaucoup, bonnes gens.

Répondre

0

Votre question était très intéressante, donc j'ai joué avec le code que vous avez fourni mais j'ai peur que ce que vous essayez de faire ne soit pas possible.

La première chose que j'ai découverte est que vous avez raison à propos de fileObj qui diffère du fichier qui provient du composant de fichier d'entrée sur l'événement onchange et qui est la raison la plus probable du crash. Pendant que je jouais avec votre code, j'ai essayé d'émuler les propriétés file avec un simple objet javascript mais ça ne marche pas non plus (FF se bloque de la même manière). Deuxièmement, uploadify utilise flash (script d'action) pour télécharger des fichiers. Vous pouvez remarquer la similarité des événements entre les événements de uploadify et ceux de la classe Filereference. Donc, cette entrée de fichier que vous avez au début n'est pas du tout utilisée pendant le processus de téléchargement de fichier (il me semble qu'elle est utilisée juste pour déterminer où placer l'objet flash utilisé pour le téléchargement). Cela peut être vérifié en vérifiant la propriété des fichiers dans l'objet du fichier d'entrée, par exemple sur l'événement onselect de uploadify, ou sur l'événement onopen (dans les deux cas, les fichiers sont de taille 0).

J'espère que cela aide!

+0

Merci beaucoup pour votre temps et je souhaite aider! Malheureusement, je me suis rendu compte que ce que je veux n'est pas impossible en raison de la conception de Uploadify. Donc, je dois faire un compromis avec l'affichage des vignettes d'image après le téléchargement :( –