Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Необходимо отправить 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;

}

}

14 лет назад
terehru
Антон 
35 летРоссия
14 лет в сервисе
Был
14 лет назад