Вам необходимо создать объект данных формы. В функции ajax установите для processData
значение false.
Поскольку данные, передаваемые в параметр данных в виде объекта (технически, что угодно, кроме строки), будут обрабатываться и преобразовываться в строку запроса, в соответствии с типом содержимого по умолчанию «application / x-www-form-urlencoded» ». Если вы хотите отправить DOMDocument или другие необработанные данные, установите для этого параметра значение false.
JS
$("form").submit(function(evt){
evt.preventDefault(); //prevent refresh
const formData = new FormData(this); // you need to create a FormData obj to be able to send files
$.ajax({
url: 'upload-my-files', //change this to your url
type: 'POST',
data: formData, //put formData as body data
cache: false,
contentType: false,
enctype: 'multipart/form-data',
processData: false,
success: function (data) {
console.log(data);
}
});
});
Ссылки:
https://developer.mozilla.org/en-US/docs/Web/API/FormData [118 ]
Можно сохранить его как CDATA, но существует риск, что некоторые последовательности байта оценят к допустимому XML, который закрывает раздел CDATA. После беглого взгляда на http://www.w3.org/TR/2006/REC-xml-20060816/#sec-cdata-sect кажется, что у Вас может быть любая последовательность символов кроме"]]>". Взгляните на то, что является допустимым символом XML также.
Символ Nul ('\0' в C) не допустимо нигде в XML, как раз когда Escape (и № 0;).
XML является форматом простого текста - не используют его, чтобы хранить двоичные данные. Поместите двоичные блобы в отдельные файлы и добавьте элемент к Вашему XML, который ссылается на эти файлы. Если Вы хотите сохранить все двоичные блобы в единственном файле, добавьте атрибут смещения или что-то как этот...