Save image from Flash, send it to PHP and return a URL string to Flash(从 Flash 保存图像,将其发送到 PHP 并将 URL 字符串返回给 Flash)
问题描述
我使用此代码将图像转换为 BitmapData 并将 JPG 存储在 ByteArray 中.
I use this code to convert an image to a BitmapData and store a JPG in a ByteArray.
import com.adobe.images.JPGEncoder;
var jpgSource:BitmapData = new BitmapData (img_mc.width, img_mc.height);
jpgSource.draw(img_mc);
var jpgEncoder:JPGEncoder = new JPGEncoder(85);
var jpgStream:ByteArray = jpgEncoder.encode(jpgSource);
// here we need some code to send the bytearray but I lack enough knowledge to do it by myself
现在,我想做以下事情:1.将ByteArray发送到PHP;2、PHP必须在服务器上存储一个物理image_id.jpg;3.然后PHP必须将图片的URL返回给Flash;
Now, I want to do the following: 1. send the ByteArray to PHP; 2. PHP must store a physical image_id.jpg on server; 3. then PHP must return the URL of the image to Flash;
这可能吗?怎么样?
PHP 的第一行可能是:
The first lines of PHP could be:
if (isset($GLOBALS["HTTP_RAW_POST_DATA"]))
{
// get bytearray
$jpg = $GLOBALS["HTTP_RAW_POST_DATA"];
// but I don't know how to save the image on disk and how to return the URL of the //image
}
谢谢!
推荐答案
as3部分:
import com.adobe.images.JPGEncoder;
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLRequestHeader;
import flash.net.URLRequest;
var jpgSource:BitmapData = new BitmapData(img_mc.width,img_mc.height);jpgSource.draw(img_mc);var jpgEncoder:JPGEncoder = new JPGEncoder(85);var jpgStream:ByteArray = jpgEncoder.encode(jpgSource);
var jpgSource:BitmapData = new BitmapData(img_mc.width,img_mc.height); jpgSource.draw(img_mc); var jpgEncoder:JPGEncoder = new JPGEncoder(85); var jpgStream:ByteArray = jpgEncoder.encode(jpgSource);
//设置请求的头部、方法和数据var header:URLRequestHeader = new URLRequestHeader("Content-type","application/octet-stream");var loader:URLLoader = new URLLoader();//发送jpg字节到saveJPG.php脚本var myRequest:URLRequest = new URLRequest("saveJPG.php");myRequest.requestHeaders.push(header);myRequest.method = URLRequestMethod.POST;myRequest.data = jpgStream;loader.load(myRequest);//触发完成事件;loader.addEventListener(Event.COMPLETE,saved);保存的功能(e:事件){//跟踪图像文件名跟踪(装载机数据);}
//set the request's header,method and data var header:URLRequestHeader = new URLRequestHeader("Content-type","application/octet-stream"); var loader:URLLoader = new URLLoader(); //sends jpg bytes to saveJPG.php script var myRequest:URLRequest = new URLRequest("saveJPG.php"); myRequest.requestHeaders.push(header); myRequest.method = URLRequestMethod.POST; myRequest.data = jpgStream; loader.load(myRequest); //fire complete event; loader.addEventListener(Event.COMPLETE,saved); function saved(e:Event) { //trace the image file name trace(loader.data); }
php (saveJPG.php) 部分:
the php (saveJPG.php) part:
if ( isset ( $GLOBALS["HTTP_RAW_POST_DATA"] )) {
//the image file name
$fileName = 'img.jpg';
// get the binary stream
$im = $GLOBALS["HTTP_RAW_POST_DATA"];
//write it
$fp = fopen($fileName, 'wb');
fwrite($fp, $im);
fclose($fp);
//echo the fileName;
echo $fileName;
} else echo 'result=发生错误.';
} else echo 'result=An error occured.';
这篇关于从 Flash 保存图像,将其发送到 PHP 并将 URL 字符串返回给 Flash的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:从 Flash 保存图像,将其发送到 PHP 并将 URL 字符串
基础教程推荐
- HTTP 与 FTP 上传 2021-01-01
- 在 yii2 中迁移时出现异常“找不到驱动程序" 2022-01-01
- 如何在 Symfony 和 Doctrine 中实现多对多和一对多? 2022-01-01
- 使用 PDO 转义列名 2021-01-01
- phpmyadmin 错误“#1062 - 密钥 1 的重复条目‘1’" 2022-01-01
- 在 CakePHP 2.0 中使用 Html Helper 时未定义的变量 2021-01-01
- 如何在 XAMPP 上启用 mysqli? 2021-01-01
- 找不到类“AppHttpControllersDB",我也无法使用新模型 2022-01-01
- Doctrine 2 - 在多对多关系中记录更改 2022-01-01
- PHP 守护进程/worker 环境 2022-01-01