Я пытаюсь отправить 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);
Я не уверен, что делать на этом этапе, любая помощь очень ценится.
Спасибо!
Задача ещё не решена.
Других решений пока нет …