Comunidad de diseño web y desarrollo en internet online

FLex + PHP upload File

Citar            
MensajeEscrito el 02 Dic 2010 12:40 am
Estoy totalmente desquiciado. la idea es traducir un codigo HTML que funciona a FLEX (AS3)
pero no doy con la solución:

Código HTML :

<form enctype="multipart/form-data" action="[url]/carga.php" method="POST">
    <!-- MAX_FILE_SIZE debe preceder el campo de entrada de archivo -->
    <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
    <!-- El nombre del elemento de entrada determina el nombre en el array $_FILES -->
    Enviar este archivo: <input name="userfile" type="file" />
    <input type="submit" value="Send File" />
</form>


Este codigo sumado al script PHP que tengo en el servidor funciona perfectamente. Intento traducir-lo:

Código ActionScript :

            var jpgEncoder:JPGEncoder = new JPGEncoder(80);
            var myByteArray:ByteArray = jpgEncoder.encode(laimagen);
            var request:URLRequest = new URLRequest ( 'http://[la url]/carga.php' );
            var loader: URLLoader = new URLLoader();
            var rhArray:Array = new Array(new URLRequestHeader("Content-Type", "multipart/form-data")); 
            request.requestHeaders = rhArray;
            request.method = URLRequestMethod.POST;
            var vars:URLVariables = new URLVariables();
            vars.userfile = myByteArray;
            request.data = vars;
            loader.load( request );

El script del servidor que funciona perfecto con el codigo HTML:

Código PHP :

<?php
// En versiones de PHP anteriores a 4.1.0, $HTTP_POST_FILES debe utilizarse en lugar
// de $_FILES.
$uploaddir = '../images/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo "El archivo es válido y fue cargado exitosamente.\n";
} else {
    echo "¡Posible ataque de carga de archivos!\n";
}
echo 'Aquí hay más información de depurado:';
print_r($_FILES);
print "</pre>";

?>


Gracias ante todo. Que narices hago mal? todo?

Por amas

28 de clabLevel



 

chrome
Citar            
MensajeEscrito el 03 Dic 2010 02:09 am

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 06 Dic 2010 10:34 am
Si subir una imagen com tal jpg etc.. ya lo se hacer. El problema es subir directamente un ByteArray. Fruto de la manipulación in situ de un BitmapData en pantalla.

Gracias por tu interés.

Por amas

28 de clabLevel



 

chrome
Citar            
MensajeEscrito el 06 Dic 2010 11:31 am
Ah, ok, entonces algo así (lo tomo del blog de Joa Ebert):

Código ActionScript :

//-- your byte array you want to save
var bytes: ByteArray = new ByteArray();

//-- set up correct url request using post in binary mode
var request:URLRequest = new URLRequest ( 'http://pathto/save.php' );
var loader: URLLoader = new URLLoader();
request.contentType = 'application/octet-stream';
request.method = URLRequestMethod.POST;
request.data = bytes;
loader.load( request );


En el PHP

Código :

$fp = fopen( 'file.txt', 'wb' );
fwrite( $fp, $GLOBALS[ 'HTTP_RAW_POST_DATA' ] );
fclose( $fp ); 


source: http://blog.joa-ebert.com/2006/05/01/save-bytearray-to-file-with-php/
Si no te funciona, hay alguna clase por allí para multipart: http://code.google.com/p/multipart-loader/downloads/list

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

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