Comunidad de diseño web y desarrollo en internet online

error en amfphp

Citar            
MensajeEscrito el 02 May 2012 03:33 pm
saludos, aquí en el foro pidiendo su ayuda otra vez. el problema ahora es que me sale un error al querer utilizar amfphp. Para ser mas explicito: tengo una aplicación en flex que me devuelve un nombre de un directorio y me lo proyecta en un "DataGrid" pero correr mi aplicación y me sale el sig. error:

[RPC Fault faultString="Channel disconnected" faultCode="Client.Error.DeliveryInDoubt" faultDetail="Channel disconnected before an acknowledgement was received]

tengo otra aplicación y si me corre perfectamente y me proyecta los datos de mi clase en php pero esta no se porque no me funciona si utilice el mismo procedimiento y las 2 las hice yo. aquí les dejo el código:

Código Flex :

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
            xmlns:s="library://ns.adobe.com/flex/spark" 
            xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
   <fx:Script>
      <![CDATA[
         import mx.collections.ArrayCollection;
         import mx.controls.Alert;
         import mx.events.FlexEvent;
         import mx.events.ListEvent;
         import mx.events.ScrollEvent;
         import mx.rpc.Fault;
         import mx.rpc.events.FaultEvent;
         import mx.rpc.events.ResultEvent; 
         
         [Blindable]
         private var objTrab:Object = new Object();
         
         
         [Bindable]
         private var TablaDP:ArrayCollection = new ArrayCollection()
         
         protected function TablaG_itemClickHandler(event:ListEvent):void
         {
            //Alert.show("seleccionado... "+TablaDP.toString());
            
            
            var obj:Object = TablaG.selectedItem;
            objTrab = obj;
            
            var index:int = 0;
            for(var i:int=0 ; i<TablaDP.length ; i++)
            {
               if(TablaDP[i].id == objTrab.toString())
               {
                  index = i;
                  break;
               }
            
            }
            
         
            
            
            Alert.show("Ha seleccionado el Archivo: "+ TablaG.selectedItem[DataGridColumn(TablaG.columns[event.columnIndex]).dataField].toString(),"Atención");
            
            
            
         }
         
         
         protected function cncel_clickHandler(event:MouseEvent):void
         {

            mirem.directorio("C:/xampp/htdocs/flex/visor/panel_nub/bin-debug/contenido");
            
            //=TablaG.selectedItem[DataGridColumn(TablaG.columns[event.columnIndex]).dataField].toString();
         }
         
         
         protected function mirem_faultHandler(event:FaultEvent):void
         {
            // TODO Auto-generated method stub
            
            Alert.show(event.fault.toString());
         }
         
         /*[Blindate]
         private var directorio1:ArrayCollection = new ArrayCollection();*/
         
         protected function directorio_Result(event:ResultEvent):void
         {
            if(event.result is Array)
            {
               TablaDP = new ArrayCollection(event.result as Array);
               objTrab=TablaDP[0];
            }  
            else 
               TablaDP = new ArrayCollection();  
         }

      ]]>
   </fx:Script>
   
   
   
   <fx:Declarations>
      <!-- Place non-visual elements (e.g., services, value objects) here -->
      <s:RemoteObject id="mirem" source="clases.leer_dir" destination="amfphp" fault="mirem_faultHandler(event)" showBusyCursor="true">
         <s:method name="directorio" result="directorio_Result(event)"/>
      </s:RemoteObject>
   </fx:Declarations>
   
   <mx:DataGrid x="22.55" y="81.4" dataProvider="{TablaDP}" id="TablaG"  itemClick="TablaG_itemClickHandler(event)" >
      <mx:columns>
         <!--mx:DataGridColumn headerText="ID" dataField="idCol" width="30"/-->
         <mx:DataGridColumn headerText="Nombre del Archivo..." dataField="nombre" width="300" />
      </mx:columns>
   </mx:DataGrid>
   <s:Button x="515.75" y="43.65" label="Directorio..." id="cncel" click="cncel_clickHandler(event)"/>
   
</s:Application>



Código PHP :

<?php

require_once 'nombres.php';
class leer_dir
{
public function directorio($dir) 
{

//$dir = 'C:/xampp/htdocs/flex/clasesp1/nuevoflex/base_datos/funcion_dir-debug/nueva_carpeta';

// Abrir un directorio conocido, y proceder a leer sus contenidos
if (is_dir($dir)) 
{
if ($gd = opendir($dir)) 
{
while ($archivo = readdir($gd))
 {
echo "<br>$archivo</br>" ;
 $nomb1 = new nombres;
 $nomb1->Nombre_archivo=$archivo;


}

closedir($gd);
}
}   
}
}
?>

Por lalz_tc

33 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 02 May 2012 03:50 pm
Mmm ... no le veo buena pinta a esa clase de PHP. Haz dos cosas:

- Abre directamente el PHP de la clase a ver que no te de ningún error
- Trata de usar la clase en un PHP de prueba

Adicionalmente puedes usar un sniffer como charlesproxy.com para ver el request a amfphp y un mensaje de error mas descriptivo

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 02 May 2012 04:28 pm
Gracias. lo que faltaba era que no le puse una variable para arreglo y me la retornara. No lo había hecho porque lo probé primero con php y si me regresaba el nombre de mis archivos pero era solo eso muchas gracias.

asi me quedo al final el codigo:

<?php

require_once 'nombres.php';
class leer_dir
{
public function directorio($dir)
{

//$dir = 'C:/xampp/htdocs/flex/clasesp1/nuevoflex/base_datos/funcion_dir-debug/nueva_carpeta';

// Abrir un directorio conocido, y proceder a leer sus contenidos
if (is_dir($dir))
{
if ($gd = opendir($dir))
{
while ($archivo = readdir($gd))
{
if (is_file($dir."/".$archivo)){
//echo "<br>$archivo</br>" ;
$nomb1 = new nombres;
$nomb1->Nombre_archivo=$archivo;
$MiArchivos[]=$nomb1;
}else {

}
}

closedir($gd);
}
}else {
$MiArchivos="no es un directorio valido";
}
return $MiArchivos;
}

//return $archivo;

}
?>

Por lalz_tc

33 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 02 May 2012 04:29 pm
saludos

Por lalz_tc

33 de clabLevel



Genero:Masculino  

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.