Скорректировать POST-запрос в flash-приложении
Необходимо отправить PNG-картинку, которая генерируется флешкой. Проблема заключается в том, что не удается правильно прописать заголовки в header'е.
Чтобы php скушал картинку, необходимо отправить примерно следущее:
Content-Type: multipart/form-data; boundary=1BEF0A57BE110FD467A
Content-Length: (lenght)
--1BEF0A57BE110FD467A
Content-Disposition: form-data; name="login"
(logindata)
--1BEF0A57BE110FD467A
Content-Disposition: form-data; name="plan"; filename="plan.png"
Content-Type: image/png
(pngdata)
Кроме PNG генерируется ещё и XML, c которым предстоит сделать то же самое, но это отдельный запрос. Отрывок кода для ознакомления:
public function save() : void {
main.progress.visible = true;
/*
* Сгенерировали xml
*/
xml = getXmlState();
var xml_request : URLRequest = new URLRequest(Main.XML_SAVE + "?phpSid=" + Main.PHP_SID);
xml_request.data = xml;
xml_request.contentType = "text/xml";
xml_request.method = URLRequestMethod.POST;
var xml_uploader : URLLoader = new URLLoader();
xml_uploader.load(xml_request);
/*
* Генерируем картинку
*/
var b : Object = workspace.planning_layer.getBounds(workspace);
if(b.width > 10 && b.height > 10) {
workspace.grid_layer.visible = false;
var data_png : BitmapData = new BitmapData(b.width + b.x + 40, b.height + b.y + 40);
data_png.draw(workspace);
workspace.grid_layer.visible = true;
var png_image_data : ByteArray = PNGEncoder.encode(data_png);
var url_req : URLRequest = new URLRequest(Main.PNG_SAVE + "?phpSid=" + Main.PHP_SID);
url_req.data = png_image_data;
url_req.method = URLRequestMethod.POST;
var header : URLRequestHeader = new URLRequestHeader("Content-Type", "multipart/form-data");
url_req.requestHeaders.push(header);
var image_upload : URLLoader = new URLLoader();
image_upload.load(url_req);
image_upload.addEventListener(Event.COMPLETE, onPostComplete);
dispatchEvent(new ToolEvent(ToolEvent.TOOL_SELECTED, 0, 1, true));
} else {
main.progress.visible = false;
}
}