I haven't used amfphp extensively, but it might be a problem in the type
of data amfphp expects... I'm not sure this is a good idea:

ba.toString()

As with a JPG you'll sure get lots of 0's in the ByteArray; parsed as a char
in a string, a 0 value is what's known as an embedded null, which
traditionally is used to signal the end of the string, so probably at some
point the data is being truncated.

Maybe if you just send the ByteArray object, amfphp will figure out the type
of the object and will be able to deserialize it correctly. I think that's
the whole idea behind amfphp, it automatically serializes and deserializes
native objects using the amf format.


Cheers
Juan Pablo Califano


2008/8/16, Omar Fouad <[EMAIL PROTECTED]>:
>
> well I've been trying this amfphp and it does not work. amfphp responds
> back
> an error saying "amfphp_runtime_error".
>
> I have this php file in the services dir which hace this function  that I
> call throuh actionscript
>
> function getData($image)
> {
>        $data = mysql_query("Insert into table01 (image) values
> ('$image')");
>        if($data == null) {
>           return false;
>        }eles{
>           return true;
>       }
> }
>
> in the mysql database there is a longblob field image and in fd I wrote:
>
> [Embed(source = 'mail[1].jpg')]
>        private var _img:Class;
>        private var img:Bitmap = new _img();
>
>        private var gw:NetConnection;
>        private var res:Responder;
>        private var TF:TextField = new TextField();
>
>        private var ba:ByteArray;
>        private var encoder:JPGEncoder;
>        private var bd:BitmapData;
>
>        public function Main():void {
>
>            TF.autoSize  = TextFieldAutoSize.LEFT;
>            addChild(TF);
>
>            bd = new BitmapData(img.width, img.height);
>            bd.draw(img);
>            encoder = new JPGEncoder(90);
>            ba = encoder.encode(bd);
>
>            gw = new NetConnection();
>            gw.connect("http://localhost/amfphp/amfphp/gateway.php";);
>            res = new Responder(onResult, onFault);
>            gw.call("Test.getData", res, ba.toString());
>        }
>
>        private function onResult(responds:Object):void {
>            TF.text = String(responds);
>        }
>
>        private function onFault(responds:Object):void {
>            for (var i:* in responds) {
>                    TF.text = String(responds[i]);
>            }
>        }
>
> Is there something I missed in the AS or PHP?
>
> Thanks
>
>
>
> On Sat, Aug 16, 2008 at 2:16 AM, Omar Fouad <[EMAIL PROTECTED]>
> wrote:
>
> > Thanks.. I will try this now and feed you back.
> >
> >
> >
> > On Sat, Aug 16, 2008 at 1:41 AM, Juan Pablo Califano <
> > [EMAIL PROTECTED]> wrote:
> >
> >> Yes. Using that particular class I mentioned, from the php side you'd
> >> receive the data like a regular html form post with multipart-encode,
> that
> >> means, you can retrieve the text variables you want to send with
> >> $_POST['someVar'] and the file (or files) with $_FILES['varName'] (or
> the
> >> name you choose). Treat it like if it were a html form.
> >>
> >> To add a text field to the form use the add
> addField("varName","varValue")
> >> method; to add a file, use addFile("varName", jpgByteArray,
> >> "originalFileName", imageMimeType);
> >>
> >> For "originalFileName", use whatever you want, like "image.jpg", it
> >> doesn't
> >> really matter. That's what you'll get with $_FILES['varName']['name'].
> For
> >> the imageMimeType, use the constant in the class for JPG.
> >>
> >>
> >> Cheers
> >> Juan Pablo Califano
> >>
> >> 2008/8/15, Omar Fouad <[EMAIL PROTECTED]>:
> >> >
> >> > I guess I can send the ByteArray to the php that will handle its
> >> insertion
> >> > to the database. Right?
> >> >
> >> > On Fri, Aug 15, 2008 at 7:07 PM, Juan Pablo Califano <
> >> > [EMAIL PROTECTED]> wrote:
> >> >
> >> > > With the newest player, I think, it's possible to save data into the
> >> > USER's
> >> > > hard drive without a trip to the server, but you want to store the
> >> data
> >> > on
> >> > > the server side, you need to send it to the server...
> >> > >
> >> > > You have to post that data using a URLLoader object, and specifying
> >> the
> >> > > input as binary data.
> >> > >
> >> > > I've wrapped up some code to do that and being able to pass
> variables
> >> as
> >> > > well. If you want to check it out:
> >> > >
> >> > > http://pastebin.com/f11a897cf
> >> > >
> >> > > (Sorry, comments are in Spanish, but the indentifiers are in
> English)
> >> > >
> >> > > A example of use (it's a copy & paste from some wortking code, just
> to
> >> > give
> >> > > you an idea):
> >> > >
> >> > >
> >> > > import ar.com.califa010.utils.FormData;
> >> > >
> >> > >   // getEncodedImg() is a method that returns a JPG as a byteArray
> >> > >
> >> > >   var rawJpg:ByteArray = getEncodedImg();
> >> > >   var formData:FormData = new FormData();
> >> > >
> >> > >   var imageMimeType:String = FormData.JPG_FILE;
> >> > >   var fileName:String = "imageFile.jpg";
> >> > >
> >> > >   formData.addFile("imageFile", rawJpg, fileName, imageMimeType);
> >> > >
> >> > >
> >> > >   formData.addField("sFormat",imgFormat);
> >> > >   formData.addField("idImagen",_idImagen);
> >> > >
> >> > >   var req:URLRequest  = new URLRequest(url);
> >> > >
> >> > >   req.method   = "POST";
> >> > >   req.contentType  = formData.contentType;
> >> > >   req.data   = formData.getPostData();
> >> > >
> >> > >   var loader:URLLoader = new URLLoader();
> >> > >   configureListeners(loader);
> >> > >
> >> > >    loader.load(req);
> >> > >
> >> > >
> >> > >
> >> > > 2008/8/15, Omar Fouad <[EMAIL PROTECTED]>:
> >> > > >
> >> > > > I see, all those tutorials shows how to save the image on the Hard
> >> > Drive
> >> > > > (now with flash player is possible to do this without any server
> >> side
> >> > > > script).
> >> > > >
> >> > > > But considering my question, what I should be putting in my
> database
> >> > row,
> >> > > > the byteArray encoded by JPGEncoder?
> >> > > > Is there a method into this class that takes the ByteArray from
> the
> >> > > > database
> >> > > > back, and translates it into a bitmap to be shown in the swf?
> >> > > >
> >> > > > On Fri, Aug 15, 2008 at 12:42 PM, Glen Pike <
> >> [EMAIL PROTECTED]
> >> > > > >wrote:
> >> > > >
> >> > > > > Hi,
> >> > > > >
> >> > > > >   Sorry, I put this in the wrong thread before - here is my 2c
> >> > > > >
> >> > > > >   Hi,
> >> > > > >
> >> > > > >  There are a few examples on the www about sending Bitmap data
> to
> >> the
> >> > > > > server Mario's is a good starting point -
> >> > > > > http://www.quasimondo.com/archives/000572.php      Anyway,
> there
> >> are
> >> > > > other
> >> > > > > examples about which do compression/decompression on your data
> so
> >> you
> >> > > > could
> >> > > > > save it into your DB too..
> >> > > > >
> >> > > > >  Hope this is useful
> >> > > > >
> >> > > > >  Glen
> >> > > > > --
> >> > > > >
> >> > > > > Glen Pike
> >> > > > > 01326 218440
> >> > > > > www.glenpike.co.uk <http://www.glenpike.co.uk>
> >> > > > >
> >> > > > >
> >> > > > > ______________________________________________
> >> > > > > Flashcoders mailing list
> >> > > > > Flashcoders@chattyfig.figleaf.com
> >> > > > > http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
> >> > > > >
> >> > > >
> >> > > >
> >> > > >
> >> > > > --
> >> > > > Omar M. Fouad - Digital Emotions
> >> > > > http://www.omarfouad.net
> >> > > >
> >> > > > This e-mail and any attachment is for authorised use by the
> intended
> >> > > > recipient(s) only. It may contain proprietary material,
> confidential
> >> > > > information and/or be subject to legal privilege. It should not be
> >> > > copied,
> >> > > > disclosed to, retained or used by, any other party. If you are not
> >> an
> >> > > > intended recipient then please promptly delete this e-mail and any
> >> > > > attachment and all copies and inform the sender. Thank you.
> >> > > > _______________________________________________
> >> > > > Flashcoders mailing list
> >> > > > Flashcoders@chattyfig.figleaf.com
> >> > > > http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
> >> > > >
> >> > > _______________________________________________
> >> > > Flashcoders mailing list
> >> > > Flashcoders@chattyfig.figleaf.com
> >> > > http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
> >> > >
> >> >
> >> >
> >> >
> >> > --
> >> > Omar M. Fouad - Digital Emotions
> >> > http://www.omarfouad.net
> >> >
> >> > This e-mail and any attachment is for authorised use by the intended
> >> > recipient(s) only. It may contain proprietary material, confidential
> >> > information and/or be subject to legal privilege. It should not be
> >> copied,
> >> > disclosed to, retained or used by, any other party. If you are not an
> >> > intended recipient then please promptly delete this e-mail and any
> >> > attachment and all copies and inform the sender. Thank you.
> >> > _______________________________________________
> >> > Flashcoders mailing list
> >> > Flashcoders@chattyfig.figleaf.com
> >> > http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
> >> >
> >> _______________________________________________
> >> Flashcoders mailing list
> >> Flashcoders@chattyfig.figleaf.com
> >> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
> >>
> >
> >
> >
> > --
> > Omar M. Fouad - Digital Emotions
> > http://www.omarfouad.net
> >
> > This e-mail and any attachment is for authorised use by the intended
> > recipient(s) only. It may contain proprietary material, confidential
> > information and/or be subject to legal privilege. It should not be
> copied,
> > disclosed to, retained or used by, any other party. If you are not an
> > intended recipient then please promptly delete this e-mail and any
> > attachment and all copies and inform the sender. Thank you.
> >
>
>
>
> --
> Omar M. Fouad - Digital Emotions
> http://www.omarfouad.net
>
> This e-mail and any attachment is for authorised use by the intended
> recipient(s) only. It may contain proprietary material, confidential
> information and/or be subject to legal privilege. It should not be copied,
> disclosed to, retained or used by, any other party. If you are not an
> intended recipient then please promptly delete this e-mail and any
> attachment and all copies and inform the sender. Thank you.
> _______________________________________________
> Flashcoders mailing list
> Flashcoders@chattyfig.figleaf.com
> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>
_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to