Pergunta

Estou usando o Uploadify em uma página que permite ao usuário fazer upload de imagens, bem como um campo de categoria para enviar essas imagens. Agora, vejo que o Uploadify fornece um método "scriptdata" que me permite enviar pares de valores de chave para o script uploadify.php. Mas o problema é que o método ScriptData obtém seus valores após o carregamento da página (envie a inicialização). Assim, quando um usuário está na alteração de valores da página, o ScriptData ainda possui apenas os valores padrão que estavam lá na carga da página.

Existe alguma maneira de contornar isso?

Obrigado um milhão!

Solução possível: Eu estava lendo ainda mais o manual e descobri que você pode alterar as configurações através de uma chamada de função. Possivelmente no caminho certo?

$('#fileInput').uploadifySettings('scriptData', getKeyValuePairs()).uploadifyUpload();

trabalhando nisso agora ..

Foi útil?

Solução

Você precisaria buscar o estado atual da entrada do usuário por meio de um dos retornos de chamada do Uploadify Hoock: Onopen ou OneSelect. Veja o deles documentação para o certo. Eu acho que o ONOPEN é mais confiável, pois verificará o estado atual da entrada do usuário toda vez que um upload for iniciado. Ainda assim, pode ser necessário desativar outras entradas do usuário enquanto um upload estiver em andamento ou ainda exigir que o usuário envie o formulário; caso contrário, qualquer entrada do usuário feita após o início do último upload será perdida.

Enfim, eu encontrei isso no fórum deles, que eu colocaria em um onOpen ligue de volta:

$('#fileInput2').uploadifySettings(
'scriptData', 
{'ext':$('#dirTimeStamp').val(), 'ext2':$('#txtEmail').val()}
);

Uma implementação final seria (usando o código de demonstração):

<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>

Outras dicas

Além de colocar o código para atualizar o scriptdata dentro do Onopen, você também pode fazê -lo antes de iniciar o upload. Isso pode ser feito se você definir automaticamente como false, então você precisará ligar uploadifyUpload() manualmente.

Dê uma olhada nas respostas aceitas em este tópico.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top