Я видел этот вопрос, заданный раньше, но я думаю, что у меня другой случай, поэтому я собираюсь отправить его любым способом. Поэтому мой вопрос очень прост, так как это точно так же, как говорится в этой теме. У меня есть изображение, которое я пишу на холст, и я могу преобразовать его в данные, и они сохраняют его на удаленном сервере.Загрузка изображения, полученного с холста на сервер
Я попытался 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 для этого.
Если вы можете использовать '
Большое спасибо за ответ. Я попробую это и посмотрю. – Tharanga
@Passerby Я пробовал это, но он не работает, поэтому я думаю, что я сделаю это по-другому, что является моим третьим вариантом. – Tharanga