У меня есть файл сценария java, из которого я читаю несколько файлов изображений и отправляю его в служебный код C # в виде данных из нескольких компонентов. Я могу отправить несколько данных как несколько частей из сценария Java, и в процессе обслуживания, он получает как многокомпонентный контент. Когда я отправляю json и другой текстовый файл, он правильно принимается, и я могу сохранить полученные файлы.
Но когда я отправляю файлы изображений, в результате получается неправильная длина изображения в полученных файлах. Я получаю поврежденные файлы изображений. Я знаю, что там происходит какая-то кодировка, но я попробовал код декодирования в файле сценария Java.
Принимающий сервисный код работает нормально, я пробовал его с некоторыми другими приложениями test # и MS test unit unit. Но я получаю проблему, когда я пытался вызвать только из javascipt
Ниже приведен пример кода
function HandleMultipleFile(xhr) {
var multipart = "";
var boundary = Math.random().toString().substr(2);
xhr.multipart = true;
xhr.setRequestHeader("Content-Type", "multipart/mixed;boundary=" + boundary);
var count = 0;
RecursiveRead(multipart, count, activePostFile, boundary, xhr);
}
function RecursiveRead(multipart, index, activePostFile, boundary, xhr) {
if (index === activePostFile.length) {
multipart += "--" + boundary + "--\r\n";
var length = multipart.length;
xhr.send(multipart);
return;
}
var postfile = activePostFile[index];
var reader = new FileReader();
reader.onload = function (e) {
var filename = postfile.value;
var mimetype = "image/jpeg";
var data1 = reader.result;
var len = data1.length;
if (index !== 0) {
var subindex = data1.indexOf(",");
var subdata = data1.slice(subindex+1)
data1 = atob(subdata);
}
var len2 = data1.length;
multipart += "--" +
boundary +
"\r\nContent-type: " + mimetype +
"\r\n\r\n" +
data1 +
"\r\n";
RecursiveRead(multipart, index + 1, activePostFile, boundary, xhr);
return;
}
}