2013-09-04 4 views
0

Я видел этот вопрос, заданный раньше, но я думаю, что у меня другой случай, поэтому я собираюсь отправить его любым способом. Поэтому мой вопрос очень прост, так как это точно так же, как говорится в этой теме. У меня есть изображение, которое я пишу на холст, и я могу преобразовать его в данные, и они сохраняют его на удаленном сервере.Загрузка изображения, полученного с холста на сервер

Я попытался AJAX XHttp следующим

imageformdata.append("FILE_NAME", filename);   
imageformdata.append(filename, image); 
var oReq = new XMLHttpRequest(); 
oReq.onload = function(oEvent) { 
    if (oReq.status == 200) { 
     document.getElementById('response').innerHTML = "Uploaded!"; 
    } else { 
     document.getElementById('response').innerHTML = "not Uploaded!"; 
    } 
}; 
oReq.open("POST", "http://localhost:18000/"); 
oReq.send(imageformdata); 

Но я не могу изменить сервер, чтобы избежать Access-Control-Allow-Origin, так что мне кажется AJAX это может быть и речи. Я хотел бы знать, правильно ли я думаю или есть ли другой способ обойти эту проблему.

Второй вариант, который я пытался сделать, - это вручную создать форму, а затем включить файл входного типа, а затем я понимаю, что я не могу выбрать файл с Javascript или я могу. Если да, то как надежда может мне помочь. Мой код выглядит следующим образом.

var form= document.createElement('form'); 
var input = document.createElement('input'); 
input.type = 'file'; 
form.method = "POST"; 
form.action = "http://localhost:17999/";    
var image = new Image(); 
image.onload = function(){ 
    localcontext.drawImage(image,0, 0); 
}; 
image.src = "img/1.jpg";   

input.value = localcanvas.toDataURL('image/jpeg'); 
form.appendChild(input); 
var now = new Date(); 
filename = filename+"_"+now.getFullYear()+ now.getMonth() +now.getDate()+"_"+now.getHours()+now.getMinutes()+now.getSeconds()+ ".jpg"; 
form.appendChild(input); 
document.body.appendChild(form); 
form.submit(); 

Так как обходной путь, я думаю, что мой вариант пойти на WebSocket и создать серверное приложение, клиент для веб-клиента для связи с сокетом сервера (Java), я не сделал WebSockets раньше, поэтому, пожалуйста, пожалуйста, дайте мне знать, является ли это выполнимым или является проблемой Access-Control-Allow-Origin для этого.

+1

Если вы можете использовать '' '' toDataURL() ', вы можете разместить его в'