Ver Mensaje Individual
  #6 (permalink)  
Antiguo 11/08/2009, 12:10
Avatar de lair
lair
 
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: Cabio de caracteres

bueno, mira dado que tu no puedes mostrar nos codigo te mostrare el mio para que veas lo que yo hago, quiza no estoy entendiendo bien pero bueno, te muestro como es que yo organizo los archivo que subo

Código PHP:
        function upload(){
                
//verifica que el data no venga vacio
                
if(!empty($this->data)){


                        
/*ATENCION A ESTAS LINEAS
                        captura el nombre del archivo temporal en la carpeta de apache
                        */
                        
$fuente=$this->data['Archivo']['arch']['tmp_name'];
                        
//establece la base de la url donde se almacenara el archivo
                        
$destino="files";



                        
//busca el proyecto correspodiente al archivo en cuestion 
                        
$proyecto $this->Archivo->query("select * from proyectos as Proyecto where id = ".$this->data['Archivo']['proyecto_id']);
                        if(!empty(
$proyecto)){
                                
$destino.='/'.$proyecto[0]['Proyecto']['nombre'];
                                
//si lo encuentra verifica que la carpeta contenedora exista
                                
if(file_exists($destino)){
/*
                                        En esta parte completo la url carpeta_destino/Nombre_archivo
                                        reemplaza los %20 por espacios 
*/
                                        //si existe, completa la url con el nombre de proyeto y nombre del archivo
                                        
$destino.="/".str_replace('%20','_',$this->data['Archivo']['arch']['name']);
                                }else{
                                        
//en caso de no existir el contenedor primero lo crea
                                        
mkdir('files/'.$proyecto[0]['Proyecto']['nombre']);
                                        
//y completa la url

/*
                                        lo mismo para esto
*/
                                        
$destino.="/".str_replace('%20','_',$this->data['Archivo']['arch']['name']);
                                }
                                
//verifica que el archivo se alla podido copiar

/*
                                        aqui trato de mover los archivos de la carpeta temporal a su
                                        destino final 
*/
                                
if(move_uploaded_file($fuente,$destino)){
                                        
//contruyo un arreglo con los campos correspondientes a la tabla
                                        
$file=array(
                                                
"categoria_id"=>$this->data['Archivo']['categoria_id'],
                                                
"nombre"=>$this->data['Archivo']['arch']['name'],
                                                
"url"=>$destino,
                                                
"proyecto_id"=>$this->data['Archivo']['proyecto_id'],
                                                
"descripcion"=>$this->data['Archivo']['descripcion']
                                        );
                                        if(
$this->Archivo->save($file)){
                                                echo 
"{success:true}";
                                        }else{
                                                echo 
"{success:false, mensaje:'El archivo no pudo ser registrado'}";
                                        }
                                }else{
                                        echo 
"{success:false, mensaje:'El archivo no pudo ser almacenado'}";
                                }
                        }else{
                                echo 
"{success:false, mensaje:'El proyecto no existe'}";
                        }
                }
                exit();
        } 
yo en este ejemplo utilice cakephp pero las pero las instrucciones que resalto no varian

y para la descarga hago lo siguiente:

Código PHP:
<?php
        
echo $html->css('site');

        echo(
"<meta http-equiv='refresh' content='5;url=../../".$download[0]['Archivo']['url']."'>");
?>
<div id='header'>
        <img src='../../img/logo.png'></img>
        <h1>Site Ecosistemas De Negocios</h1>
</div>
<br><br>
<div id='dwnld'>
        Si la descarga no se realiza automaticamente en 5 seg.<br>


<!-- NOTA QUE LA URL LA MANEJO RELATIVA ../../ -->
        Descargue manualmente aqui<a href='../../<?php echo $download[0]['Archivo']['url'?>'><img alt='Descargar' src='/animacion/img/download.png'></img></a>



        <br><br><br>
        <a href='javascript:window.close()'>Cerrar ventana</a>
</div>
espero te sea util, si no es lo que intentabas hacer espero tu respuesta con mas detalles y asi poder ayudarte