Я следую за обучением на XMLHttpRequest 2:
https://developer.mozilla.org/en/DOM/XMLHttpRequest/Sending_and_Receiving_Binary_Data и http://www.html5rocks.com/en/tutorials/file/xhr2/#toc-send-arraybuffer
Это отличные уроки для клиентской стороны, и вот рабочий отрывок из моего скрипта:
var imagebuffer = new ArrayBuffer(size); // create the readonly memory buffer var imagedata= new Uint8Array(imagebuffer); // create a view to manipulate data
// Делаем классные вещи с imagedata
var exchange=new XMLHttpRequest(); exchange.open("POST",url,true); exchange.send(arraybuffer);
Пока что так хорошо, и я вижу, как с панели управления клиента и сервера, так и с передачей большого количества данных.
Вот моя проблема: как мне получить доступ к ArrayBuffer с PHP на сервере? Я привык к суперкоммунальным желаемым параметрам $ _POST, переходящим из HTML-формы, поэтому к нему можно обращаться как к массиву, но я не могу найти ссылки на доступ к этому двоичному массиву и привязать его в моей базе данных MySQL.
Хорошо. Я понял это. Моя серверная PHP открывается с помощью:
$data = file_get_contents('php://input'); $mysql_blob = base64_encode($data);
который теперь находится в формате, готовом для вставки (например) в MySQL в виде BLOB-формата.
Работает как шарм!