Comunidad de diseño web y desarrollo en internet online

FileReference.upload + AS3 + PHP + cuenta gratuita en Lycos

Citar            
MensajeEscrito el 06 Nov 2007 11:41 pm
Es la 1ra vez que le coqueteo al PHP .
Lo que quiero hacer es poder subir imágenes a una carpeta del servidor, así que creé una cuenta gratuita en Lycos .

Clase jpgUploader :

Código :

package {
   import flash.net.FileReference;
   import flash.net.FileReferenceList;
   import flash.errors.IllegalOperationError;
   import flash.net.URLLoader;
   import flash.net.URLRequest;
   import flash.net.URLLoader;
   import flash.display.Bitmap;
   import flash.display.BitmapData;
   import flash.display.Loader;
   import flash.display.LoaderInfo;
   import flash.display.MovieClip;
   import flash.events.Event;
   import flash.events.ProgressEvent;

   public class jpgUploader {
      private var fileReference:FileReference;
      private var urlRequest:URLRequest;

      public function jpgUploader():void {
             openFileWindow();
      }
      
      private function openFileWindow():void {
         urlRequest=new URLRequest();
         urlRequest.url="http://www.misitio.lycos/uploadFile.php";
         try {
            fileReference=new FileReference();
            fileReference.browse();
            fileReference.addEventListener(Event.SELECT,FileReferenceSelect);
            fileReference.addEventListener(ProgressEvent.PROGRESS, onFileProgress);

         } catch (illegalOperation:IllegalOperationError) {
            // code to handle error
         }

      }
      private function FileReferenceSelect(e:Event):void {
         fileReference.upload(urlRequest);
      }
      private function onFileProgress(e:ProgressEvent):void {
         trace(e.bytesLoaded + " of " + e.bytesTotal + " bytes");
      }

   }
}


y el archivo uploadFile.php (sí el mismo que está en el tutorial de Tmeister pero para guardar en una carpeta llamada "imagenes" ):

Código :

<?php  
   $uploadDir = '/imagenes/';
   $uploadFile = $uploadDir . $_FILES['Filedata']['name'];
   echo $uploadFile;
   move_uploaded_file($_FILES['Filedata']['tmp_name'], $uploadFile); 
 ?>


Me aseguré ya de haber creado la carpeta "imagenes" y cambiar su propiedad de privacidad a pública.
Sí me funciona cuando utilizo $uploadDir = './'; (tal cual está en el tutorial) pero lógico, en la carpeta raiz.

Thanks. :wink:

Por Rafeo

650 de clabLevel

3 tutoriales
1 articulo

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 08 Nov 2007 12:50 am
Jajajaja, tenía que utilizarlo de esta form $uploadDir = 'imagenes/'; sin la "/" antes de "imagenes". Y todo 1 día por culpa de esa méndiga diagonal, jajaja ya no se me olvidará.

Por Rafeo

650 de clabLevel

3 tutoriales
1 articulo

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 09 Nov 2007 10:58 pm
Tal parece que ahora tengo problemas de encoding.
Al subir un archivo que tenga ñ o acentos éste se guarda así:
Guiño.jpg en vez de Guiño.jpg .

el código php que tengo ahora es :

Código :

<?php  
    header("Content-Type: text/html;charset=utf-8");
   $uploadDir = 'imagenes/';
       $name=$_FILES['Filedata']['name'];
   error_log($name,0);
   $uploadFile = $uploadDir . corregirNombre($name);
        $isUploaded = move_uploaded_file($_FILES['Filedata']['tmp_name'], $uploadFile); 
   
    function corregirNombre($strName){
       $arrCaracteres1 = array("á","é","í","ó","ú","Á","É","Í","Ó","Ú","ñ","Ñ");   
      $arrCaracteres2 = array("a","e","i","o","u","A","E","I","O","U","n","N");   
      $strName = str_replace($arrCaracteres1,$arrCaracteres2,$strName);
      echo $strName;
      return $strName;
    }   
 ?>


Como se dan cuenta mando imprimir el nombre del archivo en el log de errores y ahí me imprime algo así :

Código :

[Fri Nov 09 11:56:06 2007] [error] [client 10.56.45.44] Gui\xc3\xb1o.jpg


En Flash (con AS3) utilizo el System.useCodePage=false; para indicar que sea UTF el encoding , además uso hago un trace para mostrar el nombre que se obtiene con la instancia del FileReference :

Código :

private function onFileComplete(e:Event):void{
   trace(fileReference.name);
}


Pero en este trace el nombre sí se muestra como en debería ser : Guiño.jpg .

Alguien que me dé norte por favor :crap:

Por Rafeo

650 de clabLevel

3 tutoriales
1 articulo

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 12 Nov 2007 11:11 pm
¡Eureka!, muchas gracias Andrés Santos por la ayuda.

Sí seguía siendo el archivo php el del problema ,el php que me quedó bien fué:

Código :

<?php  
    header("Content-Type: text/html;charset=utf-8");
   $uploadDir = 'imagenes/';
   $uploadFile = $uploadDir . $_FILES['Filedata']['name'];
    move_uploaded_file($_FILES['Filedata']['tmp_name'], utf8_decode($uploadFile));   
 ?>


La solución: un utf8_decode al archivo a subir.

Por Rafeo

650 de clabLevel

3 tutoriales
1 articulo

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 12 Mar 2008 09:05 pm
Que tal... Rafeo Gracias a tu post pude subir archivos a mi servidor con AS3, pero tengo un problema necesito que me muestre los archivos que he subido en un DataGrid, pero nada... y tambien quiero que guarde el nombre del archivo que he subido... es posible eso?

Gracias
Atentamente
Sebastian Garcia

Por Chevy

165 de clabLevel

1 tutorial

Genero:Masculino  

Ecuador

firefox
Citar            
MensajeEscrito el 18 Mar 2008 06:18 pm
Creo que eso es ya con PHP, no estoy seguro :oops:

Por Rafeo

650 de clabLevel

3 tutoriales
1 articulo

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 08 Nov 2010 06:22 pm
HOla Rafeo, una pregunta, como hago para examinar la foto que quiero subir?
en flash.. no se usar la clase desde el fla

eso , gracias

Por elcoka

16 de clabLevel



 

Santiago, Chile

firefox

 

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