Menu:

Sponsor

Discover Master of Alchemy, our first iPad/iPhone and iPod touch game!

Follow Me

 

Forum's topics

Latest Files

Archives

Top Rated

Categories

Photo Gallery


Alessandro Crugnola on June 24, 2004 in flash , php

Ho to get bytesTotal from a dynamic generated content in PHP

Think you want to load from Flash some dynamically generated images from PHP (maybe using GD..), or also some else dynamic content..
Think at this simple code:

/**** MovieClip Loader listener ****/
loaderListener = {
onLoadStart : function(){
trace('load started!');
trace(" ----------------------------------- ")
},
onLoadProgress : function(target, bLoaded, bTotal){
trace(bLoaded + "/" + bTotal)
},
onLoadComplete : function(target){
trace(" ----------------------------------- ")
trace("complete: " + target.getBytesTotal());
trace(" ----------------------------------- ")
}
}

// I just add the rand variable to prevent caching...
movie_path = "http://local/ob_start.php?file=C:/DSCF0182.JPG&rand=" + new Date().getTime()
var mcLoader = new MovieClipLoader()
mcLoader.loadClip(movie_path, loader)
mcLoader.addListener( loaderListener )

Now, if your PHP code is written in this way (just a image copy and resize using the GD 2.x library):


<?php
// Get the required image from GET
$image = $_GET['file'];$size = getimagesize($image);
// create an empty image and copy the original
$dst_img = imagecreatetruecolor($size[0]/4, $size[1]/4);
$src_img = imagecreatefromjpeg($image);
// resize image
imagecopyresized($dst_img, $src_img, 0, 0, 0, 0, $size[0]/4, $size[1]/4, $size[0], $size[1]);
// start output content
header("Content-type: image/jpeg");
// display the image
imagejpeg($dst_img, "", 80);
?>



You will be noticed that the bytesTotal variable in flash is always '0'!
This could be a problem if you want to use any kind of graphic preloader for this such of things...
However with some little more code it's always possible to get in flash (and not only from flash) the exact content bytes lenght.
Try now this:


<?php
// Turn on output buffering
ob_start();
// Get the required image from GET
$image = $_GET['file'];
$size = getimagesize($image);
// create an empty image and copy the original
$dst_img = imagecreatetruecolor($size[0]/4, $size[1]/4);
$src_img = imagecreatefromjpeg($image);
// resize image
imagecopyresized($dst_img, $src_img, 0, 0, 0, 0, $size[0]/4, $size[1]/4, $size[0], $size[1]);
// start output content
header("Content-type: image/jpeg");
// display the image
imagejpeg($dst_img, "", 80);
// send the content lenght to output
header("Content-Length: ". ob_get_length());
// flush the output
ob_end_flush();
?>

 

Bookmark and Share

 

Tags: php 

 



Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)


Type the characters you see in the picture above.





 

TrackBacks

TrackBack URL for this entry: http://www.sephiroth.it/cgi-bin/mt/mt-tb.cgi/171