无法上传 .doc 或 .docx 文件

Unable to upload .doc or .docx file

我正在尝试在我的应用程序中上传 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,但我不认为问题出在此处。

正确的 MIME 类型如下:

.doc  -> application/msword
.docx -> application/vnd.openxmlformats-officedocument.wordprocessingml.document

总结了其他 MS 格式的 MIME 类型here

我猜您使用的插件正在查看 mime 类型:

(从这里复制:What is a correct mime type for docx, pptx etc?


.docx application/vnd.openxmlformats-officedocument.wordprocessingml.document

.doc 和 .docx 的正确 MIME 类型如下: .doc -> application/msword .docx -> application/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 变量中的最后两行更改为上面的行应该可以解决您的问题。