2010-11-20 5 views
0

Ich versuche, zum ersten Mal zu verwenden. Ich habe keine Probleme mit dem Hochladen der Datei. Das funktioniert perfekt. Mein Problem ist, dass mein PHP-Skript keine einzige $ _REQUEST-Variable von Uploadify erhält, was natürlich bedeutet, dass ich keine der Fotos verfolgen oder löschen kann, die gelöscht werden sollen. Hier ist, was ich verwende:

$('.upload').uploadify({ 
    'uploader' : 'uploadify/uploadify.swf', 
    'script' : 'upload.php', 
    'cancelImg' : 'uploadify/cancel.png', 
    'folder' : 'img/sections/' + page, 
    'auto'  : true, 
    'multi'  : false, 
    'method' : 'post', 
    'fileExt' : '*.jpg;*.jpeg;*.gif;*.png', 
    'onComplete': function(event, ID, fileObj, response, data) { 
      window.location.replace("upload.php");       
    } 
}); 

Ich versuche, das Eingabefeld-ID an den PHP-Skript zu senden, indem es in meiner Klick-Funktion (jedes Feld zeigt das aktuelle Foto einstellen und wenn Sie auf sie ausblendet und zeigt die Uploadify Form):

Uploader.clk = function() { 
    pic = $(this).find('input.upload').attr('id'); 
    field = "#" + pic; 
    $(field).uploadifySettings('scriptData' : { 'field' : field }); 
    // all my jQuery animations 
} 

natürlich ist dies für mich nicht funktioniert, aber die Uploadify Dokumentation viel zu wünschen übrig lässt. Mein Problem ist definitiv im Aufruf von uploadifySettings, als wenn ich es auskommen alle anderen Sachen gut funktioniert. Auch wenn ich

setzen

'scriptData': { 'foo': 'bar'}

in meinen Einstellungen bekomme ich immer noch nur ein sessionid und zwei Felder namens "utma" und "vsid" in mein $ _REQUEST-Array.

Also meine Frage ist, wie sage ich meinem PHP-Skript, in welchem ​​Feld es Operationen ausführt?

Antwort

0

Zwei hier Fragen, gibt es keine Notwendigkeit, zweimal das Element zu wählen, können Sie einfach tun:

$(this).find("input.upload").uploadifySettings(...); 

Und Sie müssen Ihre Einstellungen als Objekt übergeben (es ist nur ein Etikett Erklärung zur Zeit), wie diese :

Uploader.clk = function() { 
    $(this).find('input.upload') 
     .uploadifySettings({'scriptData' : { 'field' : field }}); 
    // all my jQuery animations 
} 

beachten Sie auch, dass per the documentation Sie onSelectOnce sowieso verwenden müssen:

Wenn die Option scriptData über uploadifySettings() aktualisiert wird, wird sie aufgrund von Synchronisationsproblemen mit onOpen nicht aktualisiert. Verwenden Sie stattdessen die Funktion onSelectOnce, um die Variable scriptData während eines automatischen Uploads zu ändern.

Insgesamt sollte es so aussehen:

$('.upload').uploadify({ 
    'uploader' : 'uploadify/uploadify.swf', 
    'script' : 'upload.php', 
    'cancelImg' : 'uploadify/cancel.png', 
    'folder' : 'img/sections/' + page, 
    'auto'  : true, 
    'multi'  : false, 
    'method' : 'post', 
    'fileExt' : '*.jpg;*.jpeg;*.gif;*.png', 
    'onComplete': function(event, ID, fileObj, response, data) { 
      window.location.replace("upload.php");       
    }, 
    'onSelectOnce': function(event,data) { 
      $(this).uploadifySettings({'scriptData' : { 'field' : field }}); 
    }   
}); 
+0

Haha, ich weiß wirklich nicht, warum ich das zusätzliche Variable tat. Frustration Boneheadedness. Dies macht mehr Sinn, aber jetzt startet mein Upload nicht einmal (Fortschrittsbalken kommt herein und sitzt dort ohne% angezeigt). Warten Sie jetzt, dass ich die startUpload() -Methode aufruft? –

+0

@Thomas - erhalten Sie irgendwelche JavaScrpt Fehler auf der Seite? –