I wish to upload from my Flash Application (AS3) to imageshacks XML API. I wish to know how I can do this.
"In Flash, we must POST the data using the UrlRequest and UrlLoader classes, however we run into a limitation of the Flash API. The data property of a UrlRequest can either be a UrlVariablesByteArray object. There is no easy way to send name value pairs along with the JPG byte array. This is a big problem, because most upload applications will require a filename and other headers to accompany the raw file data"
I was hoping if someone could help me overcome the above!
I have tried making use of this tutorial here:http://www.mikestead.co.uk/2009/01/04/upload-multiple-files-with-a-single-request-in-flash/
The problem is it's not for unsaved images, but it get images from your local machine and then uploads it to the server where the images has had a name already!
This was of great help to me: http://kitchen.braitsch.io/upload-bitmapdata-snapshot-to-server-in-as3/
You need to modify the URLRequestWrapper to insert field names and file names where needed. Here's what I've done:
bytes = 'Content-Disposition: form-data; name="' + $fieldName + '"; filename="';
It does the most formatting of headers so the server could understand it as a file upload.
By the way, if you have a BitmapData you might need to encode it to JPEG or PNG first.
You can send your filename data and any other data you want along with the URLRequest:
var params:URLVariables = new URLVariables(); params.id = ride.id; params.filename = ride.map_image; params.path = 'maps/'; var req:URLRequest = new URLRequest( ModelLocator.SERVER_URL + "/php/uploadpic.php"); req.method = URLRequestMethod.GET; req.data = params; fileRef.upload(req);
on the server side in php you access the extra variables as: $_REQUEST['path'] and $_REQUEST['filename'] etc