im в настоящее время работает над системой загрузки файлов dicom, которая загружает файлы .dcm с загрузчиком файлов jquery. Он работает нормально, но поскольку наборы данных DICOM могут быть очень большими, я хочу сжать файлы с помощью JSZip перед загрузкой.Сжатие dcm-файлов с помощью JSZip
Просто я передаю объект файла функции zip, которая возвращает zipped-файл. Это отлично работает с общеизвестными файлами, но не с файлами DICOM. Я уже пытался кодировать файлы в base64 строку перед zipping, но это тоже не работает. JSZip всегда бросает мне следующую ошибку:
Uncaught Error: The data of 'IM-0001-0001.dcm' is in an unsupported format !
Я использую следующие функции файла компресс:
compressFile: function(data) {
var zip = new JSZip();
var file = data.files[0];
zip.file(file.name, file, {binary:false});
content = zip.generate({
compression: 'DEFLATE'
});
return content;
}
Я также попытался с base64 и двоичным в .file вариантов, но это не сделал трюк.
Кто-нибудь подскажет, как это сделать? Im новичок в JS, так им жаль noobish вопросы ^^
С наилучшими пожеланиями
Это не имеет никакого отношения к DICOM. JSZip не знает, что файл DICOM отличается от любых других двоичных данных. Второй аргумент 'zip.file()' должен быть данными - например, Array или ArrayBuffer. Это, скорее всего, ваша проблема. – whiskeyspider
@whiskeyspider прав, проблема - это тип 'data.files [0]'. Вы знаете его тип? –
data.files [0] - объект File. Я уже изменил свой код, чтобы перевести его на base64, но это приводит к пустой почтой. я попробую ваши предложения в понедельник. благодаря – user285814