2015-08-13 98 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變量更改爲上面的那個應該可以解決您的問題。