Я использую Откройте Flash Chart 2 , чтобы создать несколько графиков. Я хочу иметь возможность сохранить изображение графика, который OFC2 предоставляет некоторые методы для достижения этой цели. Я использовал пример на сайте OFC2 для непосредственного отображения необработанных данных изображения на странице, но это не работает в IE6, который использует большинство наших пользователей (я знаю, я знаю).
Я переключился на использование метода OFC2, post_image
для отправки необработанных данных изображения на сервер. Я использую скрипт Perl для получения данных изображения, сохранения их в файл и просмотра изображения. К сожалению, при использовании метода post_image
ActionScript выдает ошибку при сохранении изображения:
Ошибка # 2101: строка, переданная в URLVariables.decode (), должна быть строкой запроса в кодировке URL, содержащей пары имя / значение.
Что, по-видимому, является ошибкой в Adobe - см. на этой странице . Из-за этой ошибки метод post_image
не завершается успешно, поэтому обратный вызов javascript никогда не сработает - у меня практически нет способа определить, было ли изображение успешно сохранено.
Итак, я решил использовать метод OFC2 get_img_binary
для получения двоичных данных изображения и использовать jQuery для публикации двоичных данных в моем сценарии Perl.
Я не могу понять, как правильно отправлять двоичные данные или как позволить моему сценарию Perl правильно получать двоичные данные, или и то, и другое.
Вот моя функция jQuery:
var chartObj = $("#chart_object").get(0);
$.ajax({
type: "POST",
url: 'download_image.pl',
//contentType: 'application/octet-stream',
contentType: 'image/png',
//processData: false,
//data: { imgData: chartObj.get_img_binary() },
data: chartObj.get_img_binary(),
dataType: "text",
success: function(data) {
console.log( data );
}
});
Из некоторых моих закомментированных строк видно, что я пробовал различные типы содержимого и другие параметры вызова Ajax.
Ajax-вызов отправляет некоторые данные, но они не являются двоичными. Я думаю, что это представление base64 двоичных данных.
У кого-нибудь есть идеи, как отправить двоичные данные из javascript на сервер?
Сценарий Perl, который у меня есть, отлично работает для метода post_image
, поэтому я не думаю, что проблема в этом?
Заранее спасибо!