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!
