gracias por leer el post. He estado trasteando con el tutorial de "Subir archivos en Flash con FileReference" y funciona perfectamente. Solamente he visto que en Safari no se muestra la barra de progreso pero en cualquier caso es genial, así que gracias Tmeister + otros.
http://www.cristalab.com/tutoriales/121/subir-archivos-en-flash-con-filereference
Estoy creando un www donde el administrador puede modificar los contenidos de su página web. Esta aplicación se muestra igual que el web pero en cada imagen hay un botón para subir una nueva imagen y reemplazar la antigua mediante FileReference. Así pues, en vez de mostrar la lista de archivos hago que me suba y me renombre el archivo para sustituir el antiguo.
El problema es que tengo varios clips, uno para cada imagen y me gustaría poder hacer esto mediante variables y así solo tener un clip y un archivo php. El problema es que dentro de este script no se como mandar la variable "bfoto" al archivo "bupload.php" para que me renombre el archivo... he probado con loadVariables pero no funciona. Alguna idea?
Gracias!
el php:
Código :
<?php $arxiu = $_POST["bfoto"]; $uploadDir = './'; $uploadFile = $uploadDir . $_FILES['Filedata']['name']; move_uploaded_file($_FILES['Filedata']['tmp_name'], $uploadFile); rename("$uploadFile", "$arxiu"); ?>
el actionscript dentro del clip:
Código :
import flash.net.FileReference; var fileUpload:FileReference = new FileReference(); var path:String = "./img/"; var escucha:Object = {}; var fileTypes:Array; var getFile:String; var bnom: String; var bfoto: String; function init() { System.security.allowDomain(path); load_mc._visible = false; fileTypes = [{description:"Archivos de Imagen", extension:"*.jpg;*.gif;*jpeg;*.png"}]; upload_btn.label = "Pujar Arxiu"; down_btn.label = "Baixar Arxiu"; upload_btn.addEventListener("click", doUpload); down_btn.addEventListener("click", doDownload); act_btn.addEventListener("click", actualitza); fileUpload.addListener(escucha); escucha.onSelect = doSelect; escucha.onComplete = doComplete; escucha.onCancel = doCancel; escucha.onProgress = doProgress; data_mc.addEventListener("change", setDownload); makeList(); } function doComplete() { load_mc.barra_mc._xscale = 0; load_mc.label_txt.text = "Tranferència Completada"; actualitza(); makeList(); } function doProgress(archivo:FileReference, bLoaded:Number, bTotal:Number) { var porcentaje = Math.round((bLoaded*100)/bTotal); load_mc.label_txt.text = porcentaje+"% de l'arxiu "+archivo.name; load_mc.barra_mc._xscale = porcentaje; } function doCancel() { trace("Cancel·lat per l'usuari"); } function doSelect(archivo:FileReference) { load_mc._visible = true; load_mc.barra_mc._xscale = 0; fileUpload.upload(path+bnom); } function doDownload() { if (getFile != undefined) { fileUpload.download(path+"/"+getFile); } } function doUpload(event) { fileUpload.browse(fileTypes); } function setDownload(c:MovieClip) { getFile = c.target.selectedItem.Nom; } function makeList() { data_mc.removeAll(); var list_xml:XML = new XML(); list_xml.ignoreWhite = true; list_xml.load(path+"lista.php"); list_xml.onLoad = function() { var nodos = this.firstChild.childNodes; for (var a in nodos) { var size:Number = Math.ceil((nodos[a].attributes.tamanio/1024)); data_mc.addItem({Nom:nodos[a].attributes.name, Tamany:size+" Kb"}); } }; } init(); function actualitza() { imatges.loadMovie("img/"+bfoto+"?Ran="+random(999), 0); } imatges.loadMovie("img/"+bfoto+"?Ran="+random(999), 0);
Gracias a todos por leer!