В моем коде сервлета (см. Ниже) генерируются 2 строки, когда ему отправляется команда post: 1 - закодированный BufferedImage, а другая - стандартная строка Java, содержащая буквы.
При нажатии кнопки на веб-странице закодированный BufferedImage отправляется на холст на моей HTML-странице и работает нормально. Но я также хотел бы, чтобы 2-я строка, содержащая письма, была отправлена в тег на моей веб-странице. Я пытаюсь добавить на существующий PrintWriter, но это не работает, так как 2 строки Goign в 2 разных местах HTML ...
Как сделать, чтобы 2-я строка, содержащая буквы (показанная в моем коде как s.getIdentifiedText () ), отображалась в теге моей веб-страницы?
Код сервлета:
protected void doPost(HttpServletRequest request, HttpServletResponse
response) throws IOException, ServletException {
Part filePart = request.getPart("file");
InputStream fileContent = filePart.getInputStream();
BufferedImage imBuff = ImageIO.read(fileContent);
SequentialRecursiveImpl s = new SequentialRecursiveImpl(imBuff);
s.boxFeaturesInImage(imBuff);
String base64String = encodeToString(imBuff, "jpg");
response.setContentType("text/html");
PrintWriter out1 = response.getWriter();
out1.append(base64String);
~~~~~~out1.append(s.getIdentifiedText());~~~~~~~~~~~
out1.close();
}
Соответствующий JavaScript:
function processImage(){
var dataURL = canvas.toDataURL('image/jpeg', 1);
var blob = dataURItoBlob(dataURL);
var formData = new FormData(document.forms[0]);
formData.append("file", blob);
function dataURItoBlob(dataURI) {
// convert base64/URLEncoded data component to raw binary data held in a string
var byteString;
if (dataURI.split(',')[0].indexOf('base64') >= 0)
byteString = atob(dataURI.split(',')[1]);
else
byteString = unescape(dataURI.split(',')[1]);
// separate out the mime component
var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];
// write the bytes of the string to a typed array
var ia = new Uint8Array(byteString.length);
for (var i = 0; i < byteString.length; i++) {
ia[i] = byteString.charCodeAt(i);
}
return new Blob([ia], {type:mimeString});
}
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
img.src = "data:image/jpg;base64, "+ xhttp.responseText;
}
};
xhttp.open("post", "Image", true);
xhttp.send(formData);
}
Соответствующий HTML:
<div class="col-md-4 m-auto">
<textarea rows="15" cols="40" name="letters"></textarea>
</div>