canvas, сохранение 
		
		
		
		на сайте есть страница, на которой с помощью js можно рисовать. 
	canvas=document.createElement("canvas"); ... и тд. Все прекрасно работает. Задача следующая: сохранять изображения. в начале сделал так: Код: 
	window.open(canvas.toDataURL("image/png"),"mywindow");но нужно сохранять изображение на сервере. Пробовал передать base64 изображения гетом, или постом на сервер, но ето не вариант , т.к. если гет - то чаще всего получается сильно большая URL и сервер не хочет ее обрабатывать. Через POST - тоже через раз передает. потом нашел еще бибилотеку .Теперь вместо нового окна с изображением выскакивает окно с предложением сохранить изображение. (а самом деле просто изменили заголовок , как я понял. .replace("image/png", "image/octet-stream"). Но сохраняет файл - без расширения. ( в опере название файла - default, в фф - ****.part где **** - первые 6 символов base4 кодировки ) Подскажите как передрать файл на сервер? ( через форму, через ифрейм, с помощью асинхронного запроса - не важно. ето потом можно настроить, главное чтобы передало и сохранило ) п.с. чего так кажеться вся задача - в передаче правильных заголовков. Но изображение - в base64 - то есть если передать то ето обычная строка. если сделать base64_deconde -> то по идеи и получим изображение. Но ету строку толком и не передать , т.. ее длина может достигать до 300 000 символов. Но браузер понимает етокак изображение. (адресная строка браузра в таком случае data:image/png;base64,iVBORw0KGgoA.....(дальше base64 строка)) еше как вариант 1) (не знаю просто возможно ли это) - перехватывать событие браузера, когда он предлагает сохранить изображение - и послать его на сервер. 2) "скопилить" изображение средствами javascript ( .. = new Image() ) - и предать на сервер. Как ето сделать я не знаю. Молю вас о помощи, или хотя бы куда копать.  | 
	
		
 POST'ом все нормально должно передаваться. 
	 | 
	
		
 POST`ом я передам саму base64 строку , на сервере сделать decode и сохранить? так предлагаете? 
	1) На пост нету ограничением по длинне передаваемых значений? 2)При передачи постом, почемуто пропадают все символы "+" :)  | 
	
		
 Цитата: 
	
 Цитата: 
	
 Цитата: 
	
  | 
	
		
 спасибо, все рашилось. я такв начале делал , но что то не получилось  и я подумал что не парвильно и начал все усложнять) 
	вот пхп скрипт котрым сохраняю 
$pic = explode(',',$_POST['data']);
$pic = str_replace(' ','+',$pic[1]);
$pic = base64_decode($pic);
$file = fopen('pic.png',w);
fwrite($file,$pic);
Цитата: 
	
 Скажите пожалуйста, как эскейпить?) и еше вопрос: обизательно ли делать encode_URI при асинхронной передачи данных 
...
  data: "data=" + options.data || ""
....
xml.open(options.type, options.url , true);
xml.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xml.send(options.data);
 | 
	
		
 Цитата: 
	
  | 
	
		
 По поводу имени файла, попробуйте  
	
.replace("image/png", "image/octet-stream; filename=myimage.png")
 | 
	
		
 Цитата: 
	
 есть еше какиенибудь варианты?  | 
| Часовой пояс GMT +3, время: 14:39. |