PHP Server code:
/*
*
* Server Side script:
*
<?php
$name = $_GET["name"];
foreach($_POST as $i){
// If image is found
if(strlen($i) > 10) $img=$i;
}
file_put_contents("uploadDirectory/".$name, $img);
file_put_contents("uploadDirectory/debug.log", $debug , FILE_APPEND | LOCK_EX);
?>
*/
Stencyl Code Block (HaXe) that uses an Image Attribute which will be stored on the server. In this code the Attribute is called Image
var _URL="http://_YourServer_/YourDirectory/AboveScript.php";
var UploadFile=“MyFile.png”;
// Call the encode function of the BitmapData which is the Image
var png = _Image.encode (_Image.rect, new openfl.display.PNGEncoderOptions());
// Get the bytes from the PNG file
var b = haxe.io.Bytes.alloc(png.length);
png.position = 0;
var bytes:haxe.io.Bytes = haxe.io.Bytes.alloc(png.length);
while (png.bytesAvailable > 0) {
var position = png.position;
bytes.set(position, png.readByte());
}
// You could save it to the local file system on Native (Windows/Mac)
// In this case we upload the data to a website that has the above mentioned script.
// bytes variable contains the data that we can send to the serve
var boundary:String = "-----------RANDOMTEXT_GENERATED";
var newline:String = "\r\n";
var str:String="";
var dat="";
boundary="--AaB03x";
var endje="";
endje=endje+"Content-Disposition: form-data; name=\"Upload\"\r\n\r\nSubmit Query\r\n"+boundary+"\r\n";
var req:URLRequest = new URLRequest(_URL+"?name=“+UploadFile));
req.requestHeaders=new Array<URLRequestHeader>();
var hdr:URLRequestHeader=new URLRequestHeader("Accept","*.png");
req.verbose = true;
req.method = URLRequestMethod.POST;
req.data=bytes;
var ldr:URLLoader = new URLLoader(req);
// Probably not needed, but for large files it is nice to know when it is uploaded...
ldr.addEventListener(Event.COMPLETE, UploadDone);
For JPG/JPEG use JPEGEncoderOptions.