Uploadify não disparar eventos fora do localhost
-
22-07-2019 - |
Pergunta
Eu tenho uma página bastante simples uploadified que permite aos usuários fazer upload de arquivos, ele funciona muito bem quando eu executá-lo em minha máquina local acessá-lo através de http: // localhost / projecto / etc
o problema é quando eu tento acessar o mesmo material de fora do localhost, mesmo tentando chegar a ele através do meu machinename ( http: // mycomp1 / projecto / etc ), a carga de páginas / etc e tudo parece funcionar, mas nada está sendo transferido, tenho firebug aberto e normalmente ele vai mostrar todas as solicitações de ajax que estão passando por mas eu estou recebendo nada.
Todas as idéias?
meu código uploadify:
$('#uploadify').uploadify({
'scriptAccess': 'always',
'uploader': '../../scripts/uploadify.swf', //flash source for handling the uploads and size checking
'cancelImg': '../../content/images/cancel.png', //cool cancel button
'script': '../../' + $('#Controller').val() + '/FileSave/' + $('#OrderID').val(), //sends files to the controller with apropriate data
'folder': 'Uploads', //sets the upload directory, not sure if this matters as the files are sent to the controller
'multi': true, //allows multiple uploads
'auto': false, //uploads dont start automatically
'queueSizeLimit': 5, //5 files can be in the queue at a time
'queueID': 'fileQueue', //div to contain the queue of files
'displayData': 'speed', //shows the transfer speed
'fileExt': '*.pdf', //limits to pdfs
'fileDesc': 'PDF', //shows a description in the browse window of filetypes
'sizeLimit': '5242880', //5mb limit
'scriptData': { 'CategoryID': $('#fileCategory').val() }, //passes the selected value of the category drop down
onComplete: function(event, queueID, fileObj, response, data) {//once a transfer completes fires an ajax function to pull in the files for the order
if (response == "Upload Successful") {//if response is successfull, updates div displaying files with new files
GetFiles($('#Controller').val());
}
}
});
UPDATE: Parece ser algo com a configuração scriptAccess mas mesmo quando conjunto para sempre, como disse no site uploadify ainda não está disparando todos os scripts de back-end ou minha função onComplete
UPDATE2: em uma inspecção mais aprofundada, parece que o meu caminho script não estava correto quando em um ambiente não localhost, mas agora com o script no local certo do im resposta ficando na minha função onComplete é igual à saída html do meu login página. quaisquer ideias?
Update3: Parece que o meu caminho script é ok, apenas por algum motivo quando não estiver em localhost I obter uma resposta da minha página de login em vez de upload bem-sucedido ou fazer upload falhou como eu deveria do meu código backend
Solução
Para a emissão página de login, parece que o flash não está respeitando suas sessões.
Assumindo que você está usando PHP, certifique-se de passar o seu PHP sessionid no post de seu objeto Flash. Por exemplo, com SWF Carregar isso é feito, passando-a para o configurações post_params . Então, certifique-se de fazer algo como isto antes do início da sessão:
if( isset( $_POST['session_id'] ) && !empty( $_POST['session_id'] ) )
session_id( $_POST['session_id'] )
session_start();
EDIT: Eu só notei a tag ASP sobre este assunto. Eu encontrei este artigo sobre sessões de flash em ASP. Esperemos que isso vai ajudar.
http://swfupload.org/forum/generaldiscussion/98
EDIT:. Alguns mais Uploadify informações específicas + ASP
http://www.uploadify.com/forum/viewtopic .php? f = 7 & t = 1178
Isso parece muito promissor :::
Outras dicas
tinha ~ mesmo problema ea solução foi bastante trivial - add crossdomain.xml
para a pasta raiz visível do seu servidor web (s) Uploadify está acessando.
Ele deve conter as seguintes informações
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="yourdomain"/>
</cross-domain-policy>
Além disso conselho I você leia este manual para entender melhor ponto inteiro deste arquivo.
Por favor, tente este método para ver se esta era uma raiz do problema.