marcolino 0 Denunciar post Postado Agosto 22, 2007 Galera olha esse site aqui: Slide.com.br. Deem um clique no botao Browse e vejam que é possivel selecionar várias imagens e não apenas uma, e alem disso ele mostra o percentual do upload, alguém sabe como posso fazer isso, selecionar varias imagens para mandar por upload ? Compartilhar este post Link para o post Compartilhar em outros sites
Eder Fortunato 15 Denunciar post Postado Agosto 22, 2007 com certeza ele usou a classe FileReference veja no help do flash que possui alguns exemplos de como usa-la Compartilhar este post Link para o post Compartilhar em outros sites
marcolino 0 Denunciar post Postado Agosto 22, 2007 Valew, agora já sei por onde começar, estava em dúvida se era algum javascript. Compartilhar este post Link para o post Compartilhar em outros sites
Comucation 0 Denunciar post Postado Agosto 22, 2007 Eu sei mandar um só por vez xD serve? com barra e porcentagem! --edit bom .. você pode criar uma função que crie uma quantia instancias de objetos FileReference relativa à quantidade de arquivos que o cara selecionar! Perai.. dexa eu dar uma olhada.. --edit uhm.. esquece o que eu disse, do jeito que eu faço só da pra selecionar um por vez mesmo! talvez seja AS3.... ai eu nem manjo! --edit bom, se te ajudar, aqui está o código de exemplo que tem no Help do flash: se tiver dúvidas diz ae q nóis t explica import flash.net.FileReference;var allTypes:Array = new Array();var imageTypes:Object = new Object();imageTypes.description = "Images (*.jpg, *.jpeg, *.gif, *.png)";imageTypes.extension = "*.jpg; *.jpeg; *.gif; *.png";allTypes.push(imageTypes);var textTypes:Object = new Object();textTypes.description = "Text Files (*.txt, *.rtf)";textTypes.extension = "*.txt;*.rtf";allTypes.push(textTypes);var listener:Object = new Object(); listener.onSelect = function(file:FileReference):Void { trace("onSelect: " + file.name); if(!file.upload("http://www.yourdomain.com/yourUploadHandlerScript.cfm")) { trace("Upload dialog failed to open."); }}listener.onCancel = function(file:FileReference):Void { trace("onCancel");}listener.onOpen = function(file:FileReference):Void { trace("onOpen: " + file.name);}listener.onProgress = function(file:FileReference, bytesLoaded:Number, bytesTotal:Number):Void { trace("onProgress with bytesLoaded: " + bytesLoaded + " bytesTotal: " + bytesTotal);}listener.onComplete = function(file:FileReference):Void { trace("onComplete: " + file.name);}listener.onHTTPError = function(file:FileReference):Void { trace("onHTTPError: " + file.name);}listener.onIOError = function(file:FileReference):Void { trace("onIOError: " + file.name);}listener.onSecurityError = function(file:FileReference, errorString:String):Void { trace("onSecurityError: " + file.name + " errorString: " + errorString);}var fileRef:FileReference = new FileReference();fileRef.addListener(listener);fileRef.browse(allTypes); --edit descobriiii huahuhua FileReferenceList.browse() method lets the user select multiple files. After a successful call to the browse() method, call the FileReference.upload() method to upload one file at a time. só usar FileReferenceList.browse() no lugar de FileReference.browse()! ;D Compartilhar este post Link para o post Compartilhar em outros sites
Comucation 0 Denunciar post Postado Agosto 22, 2007 esqueça as outras coisas que eu disse.. a seguir um código de exemplo de Upload de múltiplos arquivos: import flash.net.FileReferenceList;import flash.net.FileReference;var listener:Object = new Object();listener.onSelect = function(fileRefList:FileReferenceList) { trace("onSelect"); var list:Array = fileRefList.fileList; var item:FileReference; for(var i:Number = 0; i < list.length; i++) { item = list[i]; trace("name: " + item.name); trace(item.addListener(this)); item.upload("http://www.yourdomain.com/"); }}listener.onCancel = function():Void { trace("onCancel");}listener.onOpen = function(file:FileReference):Void { trace("onOpen: " + file.name);}listener.onProgress = function(file:FileReference, bytesLoaded:Number, bytesTotal:Number):Void { trace("onProgress with bytesLoaded: " + bytesLoaded + " bytesTotal: " + bytesTotal);}listener.onComplete = function(file:FileReference):Void { trace("onComplete: " + file.name);}listener.onHTTPError = function(file:FileReference, httpError:Number):Void { trace("onHTTPError: " + file.name + " httpError: " + httpError);}listener.onIOError = function(file:FileReference):Void { trace("onIOError: " + file.name);}listener.onSecurityError = function(file:FileReference, errorString:String):Void { trace("onSecurityError: " + file.name + " errorString: " + errorString);}var fileRef:FileReferenceList = new FileReferenceList();fileRef.addListener(listener);fileRef.browse(); Compartilhar este post Link para o post Compartilhar em outros sites
marcolino 0 Denunciar post Postado Agosto 25, 2007 Valew pelas dicas paulo. Eu alterei o codigo e fiz um form para ficar melhor, prém quando clico no botão procurar os arquivos não são listados no input, alguém sabe onde está o erro? Formulario import flash.net.FileReferenceList;import flash.net.FileReference;var listener:Object = new Object();btenviar.onRelease = function(fileRefList:FileReferenceList) { var list:Array = fileRefList.fileList; var item:FileReference; for(var i:Number = 0; i < list.length; i++) { item = list[i]; trace("name: " + item.name); trace(item.addListener(this)); item.upload("upload.php"); }}listener.onSelect = function(f:FileReference):Void { arquivos.text = f.name;}listener.onCancel = function():Void { trace("onCancel");}listener.onOpen = function(file:FileReference):Void { trace("onOpen: " + file.name);}listener.onProgress = function(file:FileReference, bytesLoaded:Number, bytesTotal:Number):Void { trace("onProgress with bytesLoaded: " + bytesLoaded + " bytesTotal: " + bytesTotal);}listener.onComplete = function(file:FileReference):Void { trace("onComplete: " + file.name);}listener.onHTTPError = function(file:FileReference, httpError:Number):Void { trace("onHTTPError: " + file.name + " httpError: " + httpError);}listener.onIOError = function(file:FileReference):Void { trace("onIOError: " + file.name);}listener.onSecurityError = function(file:FileReference, errorString:String):Void { trace("onSecurityError: " + file.name + " errorString: " + errorString);}var fileRef:FileReferenceList = new FileReferenceList();fileRef.addListener(listener);btprocurar.onRelease = function(Void) {fileRef.browse();} Compartilhar este post Link para o post Compartilhar em outros sites
Eder Fortunato 15 Denunciar post Postado Agosto 25, 2007 você esta usando o FileReferenceList(para multiplo upload) então o evento onSelect é diferente, ele retorna um array dos itens selecionados, testa assim listener.onSelect =function(f:FileReferenceList):Void { var list:Array = f.fileList; trace("name: " + list[0].name); arquivos.text = list[0].name} Compartilhar este post Link para o post Compartilhar em outros sites
marcolino 0 Denunciar post Postado Agosto 25, 2007 Galera, a coisa ta indo. Eu consegui corrigir o problema do inpu,t porém agora quando clico no botão enviar, os códigos não são enviados, pelo que percebei, não passando pela função btenviar, alguém pode me adudar? Exemplo Diretório Imagens import flash.net.FileReferenceList;import flash.net.FileReference;var listener:Object = new Object();btenviar.onRelease = function(fileRefList:FileReferenceList) { var list:Array = fileRefList.fileList; var item:FileReference; for(var i:Number = 0; i < list.length; i++) { item = list[i]; trace("name: " + item.name); trace(item.addListener(this)); item.upload("upload.php"); } trace("itens enviados com sucesso"); arquivos.text = " ";}listener.onSelect = function(fileRefList:FileReferenceList):Void { var list:Array = fileRefList.fileList; for(var i:Number = 0; i < list.length; i++) { trace("name: " + list[i].name); arquivos.text+= " "+list[i].name; }}listener.onCancel = function():Void { trace("onCancel");}listener.onOpen = function(file:FileReference):Void { trace("onOpen: " + file.name);}listener.onProgress = function(file:FileReference, bytesLoaded:Number, bytesTotal:Number):Void { trace("onProgress with bytesLoaded: " + bytesLoaded + " bytesTotal: " + bytesTotal);}listener.onComplete = function(file:FileReference):Void { trace("onComplete: " + file.name);}listener.onHTTPError = function(file:FileReference, httpError:Number):Void { trace("onHTTPError: " + file.name + " httpError: " + httpError);}listener.onIOError = function(file:FileReference):Void { trace("onIOError: " + file.name);}listener.onSecurityError = function(file:FileReference, errorString:String):Void { trace("onSecurityError: " + file.name + " errorString: " + errorString);}var fileRef:FileReferenceList = new FileReferenceList();btprocurar.onRelease = function(Void) { fileRef.addListener(listener); fileRef.browse();} upload.php <?php $dir = "imagens/"; $file = $_FILES["Filedata"]; echo move_uploaded_file($file["tmp_name"], $dir . "/" . $file["name"]);?> Compartilhar este post Link para o post Compartilhar em outros sites
Eder Fortunato 15 Denunciar post Postado Agosto 27, 2007 você precisa setar o nome do campo que esta enviando, no caso você colocou no php "Filedata", então tem que colocar no flash também altera essa linha item.upload("upload.php", "Filedata"); Compartilhar este post Link para o post Compartilhar em outros sites
marcolino 0 Denunciar post Postado Agosto 28, 2007 Eder, valew pela dica mas ainda não deu certo. Eu deixei apenas o essencial no codigo agora. Engraçado que onde está o codigo: trace("aqui"); não está mostrando essa saida, não sei porque mas acho que não está entrando dentro do loop, quando clico no botão enviar. import flash.net.FileReferenceList;import flash.net.FileReference;var arquivosPermitidos:Array = new Array();arquivosPermitidos[0] = {description:"Imagens (*.jpg)", extension:"*.jpg; *.jpeg"};arquivosPermitidos[1] = {description:"Imagens (*.gif)", extension:"*.giff; *.gif"};var listener:Object = new Object(); btenviar.onRelease = function(Void):Void { var list:Array = fileRefList.fileList; var item:FileReference; for(var i:Number = 0; i < list.length; i++) { item = list[i]; trace("aqui"); trace("name: " + list[i].name); trace(item.addListener(this)); item.upload("upload.php", "Filedata"); } trace("itens enviados com sucesso"); } listener.onSelect = function(fileRefList:FileReferenceList):Void { var list:Array = fileRefList.fileList; for(var i:Number = 0; i < list.length; i++) { // trace("name: " + list[i].name); arquivos.text+= " "+list[i].name; } } var fileRef:FileReferenceList = new FileReferenceList(); btprocurar.onRelease = function(Void) { fileRef.addListener(listener); fileRef.browse(arquivosPermitidos); } Compartilhar este post Link para o post Compartilhar em outros sites
Eder Fortunato 15 Denunciar post Postado Agosto 28, 2007 dentro do btenviar você esta colocando o nome errado do objeto FileReferenceList altera essavar list:Array = fileRefList.fileList;para essavar list:Array = fileRef.fileList; Compartilhar este post Link para o post Compartilhar em outros sites
marcolino 0 Denunciar post Postado Agosto 28, 2007 Eder, deu certo karaaaa. Porém, agora quero chamar o progressbar, eu criei a função mas não sei como chamar. Eu pesquisei na ajuda do flash, mas ele carrega uma imagem externa tipo: my_mcl.loadClip("http://www.net-midia.com/imasters/progressbar/img.jpg", img_mc); Mas para carregar o upload, não estou conseguindo entender. Formulario Diretorio import flash.net.FileReferenceList;import flash.net.FileReference;var my_pb:mx.controls.ProgressBar;var arquivosPermitidos:Array = new Array();var my_mcl:MovieClipLoader = new MovieClipLoader();arquivosPermitidos[0] = {description:"Imagens (*.jpg)", extension:"*.jpg; *.jpeg"};arquivosPermitidos[1] = {description:"Imagens (*.gif)", extension:"*.giff; *.gif"};var listener:Object = new Object();//função do progressbarlistener.onLoadProgress = function(target_mc:MovieClip, numBytesLoaded:Number, numBytesTotal:Number):Void { var pctLoaded:Number = Math.ceil(100 * (numBytesLoaded / numBytesTotal)); my_pb.setProgress(numBytesLoaded, numBytesTotal);}; //função do botão enviar btenviar.onRelease = function(Void):Void { this.enabled = false;// my_pb._visible = rue; var list:Array = fileRef.fileList var item:FileReference; for(var i:Number = 0; i < list.length; i++) { item = list[i]; item.upload("upload.php", "Filedata"); //chama o progressbar my_mcl.addListener(listener); } trace("itens enviados com sucesso"); arquivos.text = ""; } //função da seleção dos arquivos listener.onSelect = function(fileRefList:FileReferenceList):Void { var list:Array = fileRefList.fileList; for(var i:Number = 0; i < list.length; i++) { arquivos.text+= " "+list[i].name; } } //função do botão procurar var fileRef:FileReferenceList = new FileReferenceList(); btprocurar.onRelease = function(Void) { fileRef.addListener(listener); fileRef.browse(arquivosPermitidos); } Se der tudo certo, eu coloco o arquivo aqui pra voces galera. Compartilhar este post Link para o post Compartilhar em outros sites
cdsa20comer 0 Denunciar post Postado Agosto 28, 2007 alguem ai sabe um programa realmente bom, ou um script para envio de e-mail em massa,se alguem souber por favor pesso que me informem, porque estou atrás de um sistema desses ,gratomcleyotn douglas Compartilhar este post Link para o post Compartilhar em outros sites
marcolino 0 Denunciar post Postado Agosto 29, 2007 E ae galera, ninguém ? Compartilhar este post Link para o post Compartilhar em outros sites
Eder Fortunato 15 Denunciar post Postado Agosto 30, 2007 adicione essa linha logo no inicio var my_pb:mx.controls.ProgressBar;my_pb.mode = "manual"; precisa setar o modo que a progressBar funcionará para manual Compartilhar este post Link para o post Compartilhar em outros sites
marcolino 0 Denunciar post Postado Agosto 30, 2007 Eder, valew pela ajuda, mas eu já tinha resolvido através do HELP do flash. Agora só tem um probleminha, o progressbar está carregando todos arquivos de uma vez, mas uma hora ele carrega um arquivo e outra o ouro arquivo. Será que tem como carregar o tamanho de todos arquivos sem ficar alternando ou então carregar um de cada vez? Para voce poder ver mande um arquivo pequeno de uns 200 kb e outro de 1 mb. Exemplo Formulário Diretório imagens Código corrigido: import flash.net.FileReferenceList;import flash.net.FileReference;var arquivosPermitidos:Array = new Array();arquivosPermitidos[0] = {description:"Imagens (*.jpg)", extension:"*.jpg; *.jpeg"};arquivosPermitidos[1] = {description:"Imagens (*.gif)", extension:"*.giff; *.gif"};var listener:Object = new Object();btEnviar.enabled=false;var my_pb:mx.controls.ProgressBar;my_pb.mode = "manual";btEnviar.onProgress = function(target_mc:MovieClip, numBytesLoaded:Number, numBytesTotal:Number):Void { var list:Array = fileRef.fileList; var item:FileReference; for(var i:Number = 0; i < list.length; i++) { // trace(numBytesTotal); arq_atual.text = i+1; trace("onProgress with bytesLoaded: " + numBytesLoaded + " bytesTotal: " + numBytesTotal); var pctLoaded:Number = Math.ceil(100 * (numBytesLoaded / numBytesTotal)); my_pb.setProgress(numBytesLoaded, numBytesTotal); }};btEnviar.onRelease = function(fileRefList:FileReferenceList) { btEnviar.enabled=false; var list:Array = fileRef.fileList; var item:FileReference; for(var i:Number = 0; i < list.length; i++) { item = list[i];// trace("name: " + list[i].name); item.addListener(this); item.upload("http://www.net-midia.com/imasters/flash/upload_flash/upload.php"); }} listener.onSelect = function(fileRefList:FileReferenceList):Void { var list:Array = fileRefList.fileList; for(var i:Number = 0; i < list.length; i++) { // trace("name: " + list[i].name); arquivos.text+= " "+list[i].name; arq_total.text = i+1; }}btEnviar.onComplete = function(file:FileReference):Void { trace("onComplete: " + file.name);} var fileRef:FileReferenceList = new FileReferenceList(); btprocurar.onRelease = function(Void) { btEnviar.enabled=true; arq_total.text = "" arq_atual.text = "" arquivos.text = ""; fileRef.addListener(listener); fileRef.browse(arquivosPermitidos);} Compartilhar este post Link para o post Compartilhar em outros sites
Eder Fortunato 15 Denunciar post Postado Setembro 1, 2007 eu consegui aqui declare essas variaveis a mais var tamTotal = 0var Bytscarregados = 0var tamAtua = new Array() altera a função que altera o progresso do upload o segredo era pegar os BytesLoaded individualmente de cada um btEnviar.onProgress = function(tg:FileReference, numBytesLoaded:Number, numBytesTotal:Number):Void { var temp = numBytesLoaded - tamAtua [tg.name] tamAtua [tg.name] = numBytesLoaded Bytscarregados+=temp arq_atual.text = i+1; trace(tg.name+":onProgress with bytesLoaded: " + Bytscarregados+ " bytesTotal: " + tamTotal); var pctLoaded:Number = Math.ceil(100 * (Bytscarregados / tamTotal)); my_pb.setProgress(pctLoaded, 100);}; e essa função também btEnviar.onRelease = function(fileRefList:FileReferenceList) { btEnviar.enabled=false; var list:Array = fileRef.fileList; var item:FileReference; for(var i:Number = 0; i < list.length; i++) { item = list[i]; tamAtua[item.name] = 0 tamTotal+=item.size item.addListener(this); item.upload("http://www.net-midia.com/imasters/flash/upload_flash/upload.php"); }} []´s Compartilhar este post Link para o post Compartilhar em outros sites
marcolino 0 Denunciar post Postado Setembro 1, 2007 Uuuuuuuuu, blza cara, se você tivesse aqui te dva um beijo. hehe, Brincadeira eim, sou casado. :D Depois de muito tempo, nós conseguimos. Para quem não sabia nem por onde começar então. hehe Vlw. Exemplo Tai galera, o codigo completo corrigido: action script import flash.net.FileReferenceList;import flash.net.FileReference;var tamTotal = 0var Bytscarregados = 0var tamAtua = new Array()var arquivosPermitidos:Array = new Array();arquivosPermitidos[0] = {description:"Imagens (*.jpg)", extension:"*.jpg; *.jpeg"};arquivosPermitidos[1] = {description:"Imagens (*.gif)", extension:"*.giff; *.gif"};var listener:Object = new Object();btEnviar.enabled=false;var my_pb:mx.controls.ProgressBar;my_pb.mode = "manual";btEnviar.onProgress = function(tg:FileReference, numBytesLoaded:Number, numBytesTotal:Number):Void { var temp = numBytesLoaded - tamAtua [tg.name] tamAtua [tg.name] = numBytesLoaded Bytscarregados+=temp trace(tg.name+":onProgress with bytesLoaded: " + Bytscarregados+ " bytesTotal: " + tamTotal); var pctLoaded:Number = Math.ceil(100 * (Bytscarregados / tamTotal)); my_pb.setProgress(pctLoaded, 100);};btEnviar.onRelease = function(fileRefList:FileReferenceList) { btEnviar.enabled=false; var list:Array = fileRef.fileList; var item:FileReference; for(var i:Number = 0; i < list.length; i++) { item = list[i]; tamAtua[item.name] = 0 tamTotal+=item.size item.addListener(this); item.upload("upload.php"); }} listener.onSelect = function(fileRefList:FileReferenceList):Void { var list:Array = fileRefList.fileList; for(var i:Number = 0; i < list.length; i++) { arquivos.text+= " \""+list[i].name+"\" "; arq_total.text = i+1; }}btEnviar.onComplete = function(file:FileReference):Void { trace("onComplete: " + file.name);} var fileRef:FileReferenceList = new FileReferenceList(); btprocurar.onRelease = function(Void) { btEnviar.enabled=true; arq_total.text = "" arq_atual.text = "" arquivos.text = ""; fileRef.addListener(listener); fileRef.browse(arquivosPermitidos);} upload.php <?php //diretório destino das imagens dentro da pasta da aplicação... //deve ter permissão para escrita chmod(777)... $dir = "imagens/"; //recebendo o arquivo multipart vindo do flash... $file = $_FILES["Filedata"]; //finalizando o upload e criando apartir do arquivo temp, multipart, um novo arquivo // em nossa pasta de destino. O echo serve para dizer ao flash se deu certo ou não... echo move_uploaded_file($file["tmp_name"], $dir . "/" . $file["name"]);?> Compartilhar este post Link para o post Compartilhar em outros sites
Juli BR 0 Denunciar post Postado Novembro 23, 2007 Perfeito! Muito obrigada MESMO por compartilhar este script! Só me digam uma coisa, tem algum limite de quantidade de arquivos? Estou trabalhando em um projeto que pessoa precisará fazer o upload de uma média de 1000 imagens (em baixa resolução) por vez. Será que este script aguenta? Mais uma vez, muito obrigada! Compartilhar este post Link para o post Compartilhar em outros sites
Eder Fortunato 15 Denunciar post Postado Novembro 23, 2007 você são muitos arquivos assim, usa o exemplo dessa tópico AQUI []´s Compartilhar este post Link para o post Compartilhar em outros sites