我正在尝试将一个ByteArray发送到PHP,然后将其作为BLOB存储在我的数据库中。当我跟踪ByteArray时,我获得了24,000字节的长度,这很好。当我将它发送到数据库时,看起来有些东西不正常,因为当我返回数据库值时,我总是得到10的长度。我确保将表值设置为MEDIUM BLOB。
这是我在AS3中的代码:
var jpg:JPGEncoder = new JPGEncoder(70);
var byteArray:ByteArray = jpg.encode(cropData);
var phpVars:URLVariables = new URLVariables();
var phpFileRequest:URLRequest = new URLRequest("http://");
phpFileRequest.method = URLRequestMethod.POST;
phpFileRequest.data = phpVars;
var phpLoader:URLLoader = new URLLoader();
phpLoader.dataFormat = URLLoaderDataFormat.BINARY;
phpLoader.addEventListener(Event.COMPLETE, confirmUpload);
//phpVars.systemCall = "pullProfile";
phpVars.picArray = byteArray;
phpLoader.load(phpFileRequest);
这是我在PHP中的代码:
<?php
include_once("connect.php");
$loggeduserapp = $_POST['loggeduserapp'];
$picArray = $_POST['picArray'];
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "UPDATE athletes.userinfo SET profilepicture='$picArray' WHERE email='$loggeduserapp'";
$conn->exec($sql)
?>
也许我正在以错误的方式加载BLOB信息?现在,我在JSON对象中有它,因为我正在为用户阅读其他信息,我正在引用它。
var pbyteArray:ByteArray = new ByteArray();
trace(profileArray.profilepicture); //profileArray is my JSON Object
pbyteArray.writeObject(profileArray.profilepicture);
trace(pbyteArray.length);
我不知道此时该怎么做,非常感谢任何帮助。 谢谢!