我试图通过发送jpgstream将一些图像从Flash保存到Php,在php中捕获它并将其推送到文件中。不知道我在这里做错了什么。
我将所需的所有图像放入一个数组中:(历史就是我保存所有图像数据的地方)
for each($value in history)
{
var jpgSource:BitmapData = new BitmapData ($value.sourceImg.width, $value.sourceImg.height);
jpgSource.draw($value.sourceImg);
var encoder:JPEGEncoder = new JPEGEncoder(100);
var jpgStream:ByteArray = encoder.encode(jpgSource);
var imgDetailArr:Array = new Array(jpgStream, $value.name);
imgArr.push(imgDetailArr);
}
然后我使用远程对象和amfphp发送给PHP:
rmObj.saveUserImages( imgArr);
在php方面,我这样做:
function saveUserImages( $imgArr)
{
foreach($imgArr as $value)
{
ob_start();
/* output image as JPEG */
$image = imagecreatefromjpeg($value[0]);
header('Content-type: image/jpeg');
imagejpeg( $image );
/* save output as file */
ob_flush();
file_put_contents( "images", ob_get_contents() );
}
}
但这似乎并没有成功。我一直在经历一堆不同的tutes和代码片段,所以也许我只是在路上遇到了一些困惑。我之前做过这个,但不记得这很困难。
答案 0 :(得分:0)
最好从Flash调用JS并通过AJAX传递路径到文件。然后,使用PHP直接上传文件。 PHP支持从硬盘驱动器上传文件。
修改强>
第二个想法,尝试将ob_flush
与后面的行一起切换。在保存之前,您似乎正在删除临时数据。
答案 1 :(得分:0)
我不是flash的专家,但这似乎正在做你想要的......想法?