Невозможно загрузить файл.doc или.docx
Я пытаюсь загрузить файлы doc или docx в свое приложение:
Вид:
<div class="col-xs-12">
<input type="file" ng-file-select="onFileSelect($files)"/>
<table>
<td ng-repeat="file in files">{{ file.name }} </td>
</table>
</div>
Ctrl:
controller: ['$scope', '$modalInstance', 'rule', '$upload', '$resource', function (modalScope, modalInstance, originalRule, $upload, $resource) {
modalScope.isLoaded = true;
modalScope.files = [];
modalScope.onFileSelect = function ($files) {
var maxSizeString = '10 Mo';
var maxSizeValue = 10 * 1024 * 1024; // 10Mo
var supportedFileFormat = ['image/gif', //
'image/jpeg', //
'image/png', //
'image/tiff',//
'image/svg+xml', //
'application/pdf',//
'application/doc',//
'application/docx',//
];
$.each($files, function (index, file) {
if (_.contains(supportedFileFormat, file.type)) {
if (file.size > maxSizeValue) { //10Mo
modalScope.fileUploaded = false;
} else {
modalScope.fileUploaded = true;
modalScope.files.push(file);
}
} else {
modalScope.fileUploaded = false;
}
});
};
Я могу загрузить изображения или.pdf, но не.doc или.docx. Что я делаю не так? Обратите внимание, что я использую версию 1.3.1 ng-file-upload. Не могу перейти на 6.x, но я не думаю, что проблема возникла отсюда.
3 ответа
Правильные типы MIME следующие:
.doc -> application/msword
.docx -> application/vnd.openxmlformats-officedocument.wordprocessingml.document
Другие типы MIME формата MS приведены здесь.
Правильные типы MIME для.doc и.docx перечислены как: .doc -> application/msword .docx -> application/vnd.openxmlformats-officedocument.wordprocessingml.document
Таким образом, вы должны добавить эти два MIME-типа в вашу переменную supportFileFormat, и это позволит загружать файлы.doc.
Файлы.docx на самом деле интерпретируются вашим приложением как приложение /zip MIME-типа, поскольку файлы.docx на самом деле представляют собой архивированные файлы XML.
var supportedFileFormat = ['image/gif', //
'image/jpeg', //
'image/png', //
'image/tiff',//
'image/svg+xml', //
'application/pdf',//
'application/zip',//
'application/msword',//
];
Замена последних двух строк в вашей переменной SupportFileFormat на приведенные выше должна решить вашу проблему.
Я предполагаю, что используемый вами плагин смотрит на mime-тип:
(скопировано отсюда: что такое правильный тип пантомимы для docx, pptx и т. д.?)
.docx application / vnd.openxmlformats-officedocument.wordprocessingml.document