Ver Mensaje Individual
  #5 (permalink)  
Antiguo 11/05/2013, 13:15
silo
 
Fecha de Ingreso: enero-2010
Mensajes: 76
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Problemas al generar un path

Veamos, el código que nos interesa es el siguiente:

Código PHP:

<?php
// Recojo datos del formulario que envío de otra página donde 'mes' es igual 
// a "Julio" y 'EmiReci' tiene el valor de 'Emitidas'.

// Ahora paso las variables vía POST... 
$periodoelegido=$_POST['mes'];
$ESelegido=$_POST['EmiReci'];

// Ahora creo el path a partir de la carpeta 'Facturas'
$directorio_destino="Facturas/".$ESelegido."/".$periodoelegido."/";
 
{
echo
"La Direccion es: ".$directorio_destino
// Aquí se muestra correctamente
// La Dirección es: Facturas/Emitidas/Julio/
El Código para subir los archivos es el siguiente:

Código PHP:

// Bloque subir archivos
if ($_POST['accion'] == $accion_subir) {
    
$i=0;
    
$num count($_FILES['archivos']['name']);
    if (
$num>1) {$tagMensaje='li'$html .= '<ul>';} else {$tagMensaje='p';}
    
$mensaje '1';
    
$char1 = array(' ','á','Á','é','É','í','Í','ó','Ó','ú','Ú','ü','Ü',',',"'",'ç','Ç');
    
$char2 = array('_','a','A','e','E','i','I','o','O','u','U','u','U','_','_','c','C');
    while (
$i<$num) {
        
$archivo_solo str_replace($char1,$char2,basename($_FILES['archivos']['name'][$i]));
        
$archivo $directorio_destino.$archivo_solo;
        
        if (
move_uploaded_file($_FILES['archivos']['tmp_name'][$i], $archivo)) {
            
$html .= '<'.$tagMensaje.'><em>'.$archivo.'</em> se ha enviado correctamente</'.$tagMensaje.'>';
        } else {
            
$html .= '<'.$tagMensaje.'><em>'.$archivo.'</em> no se ha podido enviar.</'.$tagMensaje.'>';
            
$mensaje '2';
        }
        
$i++;
    }
    if (
$num>1) {$html .= '</ul>';}
    if (empty(
$_POST['js'])) {header("Location: uploader.php?mensaje=".$mensaje."");} else {echo '<div id="iframe_mensaje">'.$mensaje.'</div>';}

Y el que los lee es el siguiente:

Código PHP:

function listarArchivos () {
    global 
$directorio_destino;
    
    
$dir opendir($directorio_destino);
    
    
$i=0
    while (
$file readdir($dir)) {
        
// quitamos lo que no sean archivos
        
$tamano round((filesize(''.$directorio_destino.$file.'')/1024),1);
        if (
$file != '.' && $file != '..') {
            
$extension explode('.',$file);
            
$extension end($extension);
            
$htmlLista .= '
            <table><tr><td align="left">
            <li class="clear">
                <a href="'
.$directorio_destino.$file.'" class="archivo archivo_'.$extension.'">'.$file.'</a>
                <span>('
.$tamano.' KB)</span></td><td>
                <a href="uploader.php?confirmarEliminacion=si&amp;archivo='
.$file.'" class="eliminar" rel="'.$file.'">Eliminar</a>
            </li>'
;$htmlLista .="\n</td></tr></table>";
            
$i++;
        }
    }
    if (
$i>0) {$html "<ul>\n".$htmlLista."</ul>"; } else {$html '<p>No hay archivos</p>';}
    
closedir($dir);
    return 
$html.'<p class="indentado"><a href="#formulario_archivos">Saltar a selección de archivos</a>.</p>';

En la cabecera del documento si configuro el path de esta manera:
$directorio_destino="Facturas/".$ESelegido."/".$periodoelegido."/";
se queda en la carpeta 'Facturas' y no va más allá.

Si la configuro de esta forma:
$directorio_destino="Facturas/Emitidas/Julio/";
funciona perfectamente.

Espero haber sido más claro esta vez y perdona la confusión.