Espero me puedan ayudar.
Tengo un boton hecho en flash para subir archivos al servidor. Sube el archivo y me los guarda en una carpeta llamada archivos. Lo que estoy necesitando ahora es que me llegue ese archivo que sube al servidor de forma adjunta por mail, si no sube a la carpeta no importa, ahora es mas importante que me llegue por mail.
Tengo el siguiente codigo en el archivo php llamado adjuntar.php:
Código :
<?php //Donde se guarda el archivo if(!is_dir("./archivos")) mkdir("./archivos", 0755); //move the uploaded file $nombre="./archivos/".basename($_FILES['Filedata']['name']); //si el archivo se guarda correctamente if ( @move_uploaded_file( $_FILES['Filedata']['tmp_name'] , $nombre)) { chmod("./archivos/".$_FILES['Filedata']['name'], 0777); //enviamos a flash un mensaje de que este archivo existe header('HTTP/1.1 200 OK'); }else{ //sino, le decimos a flash que este archivo (adjuntar.php) no existe asi manda error header('HTTP/1.1 404 Not Found'); } ?>
Quisiera saber que modificar del php para que me llegue de forma adjunta a mi correo.
Tmbien dejo el codigo de flash por si es ahi que hay que modificar:
Código :
//importamos las clases necesarias: import flash.net.FileReferenceList; import flash.net.FileReference; //Definimos los archivos permitidos, que es un array con un objeto dentro: _root.imagen._visible = false; var allTypes:Array = new Array(); imageTypes.description = "Archivos (*.jpg;*.jpeg;*.png;*.docx;*.doc;*.pdf;*.rar;*.zip;)"; var imageTypes:Object = new Object(); //"description" declara lo que saldra en el dialogo de eleccion de archivos: imageTypes.description = "Archivos (*.jpg;*.jpeg;*.png;*.docx;*.doc;*.pdf;*.rar;*.zip;)"; //la propiedad "extension" declara los archivos permitidos (en este caso solo jpgs, gifs y pngs): imageTypes.extension = "*.jpg;*.jpeg;*.png;*.docx;*.doc;*.pdf;*.rar;*.zip;"; allTypes.push(imageTypes); //Creamos un listener que se llamara cuando los archivos sean seleccionados, //que a su vez enviara los archivos elegidos a una funcion para que hagamos algo con ellos: var listListener:Object = new Object(); listListener.onSelect = function(fileRefList) { crearArchivos(fileRefList.fileList); }; //y finalmente creamos la instancia de FileReferenceList: var fileRef:FileReferenceList = new FileReferenceList(); //le aplicamos el listener: fileRef.addListener(listListener); //y declaramos que btnExaminar (un boton que tenemos en el escenario) llame al dialogo de eleccion de archivos, //con las restricciones de "allTypes": btnExaminar.onRelease = function() { fileRef.browse(allTypes); }; function crearArchivos(files) { //por si ya hemos subido algo (esto lo entenderan al final): //borramos todos los mclips creados anteriormente for (var i in arrRef) { arrRef[i].removeMovieClip(); } //y borramos las variables globales delete puntero; delete arrRef; //deshabilitamos el boton examinar. btnExaminar.enabled = false; //posicion en Y inicial para los archivos. var posY = 20; // creamos un array global que contendra todos los MCs que referencian a los archivos. _global.arrRef = new Array(); // por cada archivo seleccionado: for (var i = 0; i<files.length; i++) { //creamos un clip con un texto //el texto mostrara el tamaño y el nombre de cada archivo c.nombre.text = "»NOMBRE: "+files[i].name; c.peso.text = "»PESO: "+Math.ceil(files[i].size/1000)+" Kb"; //creamos una variable dentro del mclip que referencia al archivo de FileReference c.file = files[i]; //y metemos el clip en el array global arrRef.push(c); } //y finalmente comenzamos subiendo el primer archivo: // declaramos una variable global que indicara en que archivo vamos (ahora vamos en el primero): _global.puntero = 0; // asociamos un listener al archivo **** lo explicare a continuacion. arrRef[puntero].file.addListener(fileListener); // y comenzamos la descarga arrRef[puntero].file.upload("adjuntar.php"); } //creamos el objeto listener var fileListener:Object = new Object(); //cuando se abre el archivo, y se hace la peticion al servidor para comenzar la subida fileListener.onOpen = function(file) { //aprovechamos para crear un textfield que mostrara el progreso. _root.pleasewait.play(); _root.pleasewait.progreso.text = "SUBIENDO ARCHIVO..."; }; //cada vez que se suba un pedazo de archivo: fileListener.onProgress = function(file, bytesLoaded, bytesTotal) { //mostramos el porcentaje de progreso var porcentaje = Math.round(bytesLoaded*100/bytesTotal); _root.pleasewait.progreso.text = porcentaje+"%"; }; //cuando el archivo haya completado la subida satisfacotiramente fileListener.onComplete = function(file):Void { //mostramos que el archivo se subio bien _root.pleasewait.progreso.text = "Listo!"; c.ok.text = "PROCESO TERMINADO"; _root.imagen._visible = false; c.muestra.text = _root._url.substring(0, _root._url.lastIndexOf("/")+1)+"archivo/"+file.name; _root.pleasewait.gotoAndPlay("listo"); //y vamos a por el siguiente (ver la funcion mas abajo) subirSiguiente(); }; //con cualquier error: fileListener.onHTTPError = fileListener.onIOError=fileListener.onSecurityError=function (file, error) { //mostramos que ha habido un error _root.pleasewait.gotoAndPlay("carga"); _root.pleasewait.progreso.text = "ERROR: "+error; //y vamos a por el siguiente (ver la funcion mas abajo) subirSiguiente(); }; function subirSiguiente() { //si el puntero es menor que la cantidad de archivos if (puntero<arrRef.length-1) { //aumentamos el puntero en uno puntero++; //y subimos el siguiente archivo arrRef[puntero].file.addListener(fileListener); arrRef[puntero].file.upload("adjuntar.php"); } else { //sino, volvemos a habilitar el boton examinar, //para permitir seguir subiendo archivos btnExaminar.enabled = true; } }
Para quien solo necesite subir archivos a una carpeta el codigo anda perfecto!
Muchas gracias a todos!