Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/10/2010, 12:11
cpozo
 
Fecha de Ingreso: septiembre-2007
Mensajes: 29
Antigüedad: 16 años, 7 meses
Puntos: 0
subir archivo a un directorio

Hola,

estoy intentando hacer un componente para subir un archivo a un directorio, por ejemplo: /htdocs/directorioLocal. He estado siguiendo las instrucciones de esta url:
http://www.nosolocodigo.com/subir-ficheros-al-servidor-con-el-api-de-joomla. Tengo el siguiente código en la vista: default.php
Código HTML:
Ver original
  1. <html xmlns="http://www.w3.org/1999/xhtml">
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  4. <title>Subir Archivo </title>
  5. </head>
  6. <h1>Subir listado de alumnos</h1>
  7.  
  8. <form name="registro" id="registro"  action="index.php" method="POST" enctype="multipart/form-data"  >
  9.  
  10.     Introduce el fichero :
  11. <input type="file" name="fichero"  />
  12. <input type="submit" value="Subir Fichero" />
  13. <input type="hidden" name="option" value="com_ejemplo" />
  14. <input type="hidden" name="task" value="subirFichero" />
  15. </form>
  16. </body>
  17. </html>

y el siguiente en el controlador: mensaje.php
Código PHP:
Ver original
  1. <?php
  2. defined('_JEXEC') or die('Restricted access');
  3.  
  4. jimport('joomla.application.component.controller');
  5.  
  6. class EjemploControllerMensaje extends JController {
  7.   function display() {
  8.     JRequest::setVar('view', 'mensaje');
  9.     parent::display();
  10.   }
  11.  
  12.  function subirFichero(){
  13.   $file = JRequest::getVar( 'fichero', null, 'files', 'array' );
  14.   jimport('joomla.filesystem.file');
  15.  
  16.   if(!is_array($file)){
  17.      $mensaje .= "NoSeHaSubido";
  18.   }
  19.   if($file['error'] || $file['size'] < 1 ){
  20.     $mensaje .= " NoExisteFichero";
  21.   }
  22.   if( $file['size'] > 100  ){
  23.     $mensaje .=" FicheroDemasiadoGrande";
  24.   }
  25.   if(!JFile::upload($file['tmp_name'],"/directorioLocal".DS. $file['name'])){
  26.     $mensaje .= " ErrorAlSubirElFichero";
  27.    }
  28.  }
  29. }
  30. ?>

se instala el componente correctamente. Cuando en la página inicial introduzco el fichero a subir y pulso el botón "Subir Fichero", me devuelve el siguiente error:
JFolder::create: Infinite loop detected
Warning! - Failed to move file.
He buscado en foros a que se podia deber el problema, he comprobado en configuration.php que las variables contubieran los valores que deben: $log_path
$tmp_path también he dado todos los permisos a directorioLocal que he creado en htdocs/directorioLocal.
A ver si me pueden echar una mano con esto. Gracias.