Problema invio dei dati posto supplementare al server con uploadify
Domanda
Sto usando uploadify su una pagina che consente agli utenti di caricare le immagini così come un campo di categoria in cui per inviare quelle immagini. Ora, vedo che uploadify fornisce un metodo "scriptData" che mi permette di inviare più di coppie di valori chiave per lo script uploadify.php. Ma il problema è che il metodo scriptData afferra i suoi valori al caricamento della pagina (inizializzazione uploadify). Così, quando un utente si trova nella pagina modifica dei valori, scriptData ancora ha solo i valori predefiniti che erano lì al caricamento della pagina.
C'è comunque intorno a questo?
Un milione di Grazie!
Possibile soluzione: che stavo leggendo il manuale di più e ha scoperto che è possibile modificare le impostazioni attraverso una chiamata di funzione. Forse sulla strada giusta?
$('#fileInput').uploadifySettings('scriptData', getKeyValuePairs()).uploadifyUpload();
lavorare su di esso ora ..
Soluzione
si avrebbe bisogno di prendere l'attuale stato di input dell'utente tramite una delle uploadify di callback Hoock: onOpen o onSelect. Vedere il loro documentazione per quella giusta. Credo che onOpen è più affidabile in quanto controllerà ogni volta viene avviato l'attuale stato di input dell'utente un upload. Ancora, potrebbe essere necessario disattivare altri input dell'utente, mentre un upload è in corso, o ancora richiedere all'utente di inviare il modulo, altrimenti qualsiasi input dell'utente fatto dopo l'ultimo caricamento è iniziato sarà perso.
In ogni caso, ho trovato questo sul loro forum, che vorrei mettere su un callback onOpen
:
$('#fileInput2').uploadifySettings(
'scriptData',
{'ext':$('#dirTimeStamp').val(), 'ext2':$('#txtEmail').val()}
);
Un'implementazione finale sarebbe (utilizzando il codice demo):
<input id="fileInput" name="fileInput" type="file" />
<script type="text/javascript">// <![CDATA[
$(document).ready(function() {
$('#fileInput').uploadify({
'uploader' : 'uploadify.swf',
'script' : 'uploadify.php',
'cancelImg' : 'cancel.png',
'auto' : true,
'folder' : '/uploads',
'onOpen' : function(){
$('#fileInput').uploadifySettings(
'scriptData',
{'ext':$('#dirTimeStamp').val(), 'ext2':$('#txtEmail').val()}
);
}
});
});
// ]]></script>
Altri suggerimenti
Oltre mettere il codice per aggiornare lo scriptData all'interno onOpen, si può anche fare prima di iniziare il caricamento. Questo può essere fatto se si imposta automaticamente su false, quindi sarà necessario chiamare uploadifyUpload()
manualmente.
Date un'occhiata a Accettate le risposte a questa discussione .