2015-08-13 102 views
2

我要上传文档或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 .. 我做错了什么? 请注意,我正在使用ng-file-upload的版本1.3.1。无法升级到6.x,但我不认为这个问题来自这里。

+0

你会得到什么错误? –

+0

验证文件类型是否在您提到的支持的文件格式内。 – callmekatootie

+0

什么都没有!我把一个控制台日志记录文件的类型,但没有显示。而当我在控制台“type = application/pdf”中上传pdf时。 – hhelbawi

回答

2

正确的MIME类型有以下几种:

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

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

+0

我尝试但不适合我。 – LetsCMS

0

我猜你正在使用的插件查看MIME类型:

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


.DOCX应用/ vnd.openxmlformats-officedocument。 wordprocessingml.document

+0

对不起,但你的链接发给我“找不到页面” – hhelbawi

+1

更新。你现在可以在链接中找到mimetypes的集合;-) –

2

正确的MIME类型.doc和.DOCX被列为: .DOC - >应用程序/ msword .DOCX - >应用程序/ 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变量更改为上面的那个应该可以解决您的问题。