upload PHP + Flash
Olá!!
Tenho um codigo de upload com flash e php, onde tenho a porcentagem do carregamento e o upload em flash e a gravação do arquivo no servidor em php. Porém, NÃO quero que ele faça o upload de arquivo já existente no servidor.
Fiz o tratamento em php, porém, o flash ta pegando o primeiro valor do &mostrar que ele está encontrando, independente da condição no php. Se eu tiver um arquivo existente no servidor, ele executa o upload assim mesmo mas não grava no servidor. E caso o arquivo não exista, ele ta gerando um arquivo chamado array do tipo text, e não um arquivo com extensao e nomes originais e o flash ta me retornando o primeiro valor que ele encontra do &mostrar (Arquivo existente)...
Alguém, sabe como parar a execucao do upload no flash caso o arquivo ja exista e arrumar essa questão do retorno do php, ou como de repente fazer essa verificação de arquivo existente pelo flash??????
Fico grata desde já...
Tenho o seguinte codigo em php...
<?
$nome = (@$_POST['conteudo']);
$nome_arquivo = $_FILES['arquivo']['name'];
$tamanho_arquivo = $_FILES['arquivo']['size'];
$arquivo_temporario = $_FILES['arquivo']['tmp_name'];
if (file_exists("$dir/$nome_arquivo"){
print "&mostrar=" . utf8_encode("Arquivo existente.");
exit;
}
if ($tamanho_arquivo > 20000000)){
print "&mostrar=" . utf8_encode("Arquivo deve ter no máximo 20Mb.");
exit;
}
if(move_uploaded_file($arquivo_temporario, $dir . "/" . $nome_arquivo)){
print "&mostrar=Upload concluído com sucesso.";
}else
print "&mostrar=O arquivo não pôde ser copiado para o servidor.";
?>
E o seguinte codigo em ActionScript 2.0 ...
import flash.net.FileReference;
import flash.net.FileReferenceList;
var frList:FileReferenceList = new FileReferenceList();
var listener:Object = new Object();
var arqAtual:Number;
System.useCodepage = true;
btn_cancelar._visible=false;
frList.addListener(listener);
var imageTypes:Object = new Object();
imageTypes.description = "Imagens (*.jpg, *.jpeg, *.gif, *.png, *.bmp)";
imageTypes.extension = "*.jpg; *.jpeg; *.gif; *.png; *.bmp";
var textTypes:Object = new Object();
textTypes.description = "Arquivos de texto (*.txt)";
textTypes.extension = "*.txt";
var permitir:Array = new Array();
permitir.push(imageTypes);
permitir.push(textTypes);
btn_procurar.onRelease = function(){
frList.browse(permitir);
}
txt_info.wordWrap = true;
function criaRef(num){
if(frList.fileList[num] != undefined){
btn_cancelar._visible=true;
btn_cancelar.enabled=true;
arqAtual = num;
arq = new Object();
frList.fileList[num].addListener(arq);
//---------------------------------------------------------------
//manda dados para o php
var envia:LoadVars = new LoadVars();
envia.conteudo = frList.fileList[num].name;;
envia.sendAndLoad("upload.php", envia, "POST");
//recebe dados do php
envia.onLoad = function(ok) {
//se o PHP recebeu seu conteudo
if (ok) {
if(this.mostrar<>undefined){
txt_info.text = this.mostrar; // arquivo existente ou com erro
}
}
};
//---------------------------------------------------------------
frList.fileList[num].upload("upload.php","arquivo",false);
arq.onProgress = function(f:FileReference,carr:Number,total:Number){
porcentagem = Math.floor((carr*100)/total);
totalArq = frList.fileList.length;
atual = num + 1;
nome = frList.fileList[num].name;
txt_info.text = atual+"/"+totalArq+" - "+porcentagem+"% do arquivo '" + nome + "'";
}
arq.onComplete = function(f:FileReference){
criaRef(num+1);
}
}else{
txt_info.text = "Upload Concluido !";
btn_cancelar._visible=false;
}
}
listener.onSelect = function(){
if(frList.fileList.length>0){
criaRef(0);
}
}
btn_cancelar.onRelease = function(){
frList.fileList[arqAtual].cancel();
txt_info.text = "Upload Cancelado"
btn_cancelar.enabled=false;
}Discussão (2)
Carregando comentários...