我正在尝试在我的应用程序中上传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 .. 我究竟做错了什么? 请注意,我使用的是ng-file-upload的1.3.1版本。无法升级到6.x但我不认为这个问题来自这里。
答案 0 :(得分:3)
正确的MIME类型如下:
.doc -> application/msword
.docx -> application/vnd.openxmlformats-officedocument.wordprocessingml.document
其他MS格式的MIME类型汇总为here。
答案 1 :(得分:2)
.doc和.docx的正确MIME类型列为: .doc - &gt;应用程序/ msword .docx - &gt;应用/ vnd.openxmlformats-officedocument.wordprocessingml.document
因此,您应该将这两种MIME类型添加到supportedFileFormat变量中,这样就可以上传.doc文件。
.docx文件实际上被您的应用程序解释为MIME类型application / zip,因为.docx文件实际上是压缩的XML文件。
var supportedFileFormat = ['image/gif', //
'image/jpeg', //
'image/png', //
'image/tiff',//
'image/svg+xml', //
'application/pdf',//
'application/zip',//
'application/msword',//
];
将supportedFileFormat变量中的最后两行更改为上述行可以解决您的问题。
答案 2 :(得分:0)
我猜你正在使用的插件正在查看mime-type:
(从这里复制:What is a correct mime type for docx, pptx etc?)
.docx application / vnd.openxmlformats-officedocument.wordprocessingml.document