2014-01-11 20 views
0

這個問題可能有些小白,但是我找不到。如果我使用這種方式發送文件:PHP:接收XHR Level 2發送的一個文件

$scope.uploadFile = function(file) { 
    if ($scope.XHR2Support()) { 
     var xhr = new XMLHttpRequest(); 
     xhr.upload.onprogress = function(e) { 
      console.log("PROGRESS", e.loaded, e.total); 
     } 

     xhr.onload = function(e) { 
      if (xhr.status == 200) { 
       console.log("Upload finished!"); 
      } 
      else { 
       console.log("Upload error", xhr.status); 
      } 
     } 

     xhr.onerror = function(e) { 
      console.log("Error occured", e); 
     } 

     xhr.open("POST", "./?files,upload&test=test", true); 
     xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); 
     xhr.setRequestHeader("Content-Type", file.type); 
     xhr.send(file); 
    } 
    } 

,我該如何使用正確的MIME類型接收並保存PHP?

回答

1

您不能將MIME類型保存到保存的文件中。瀏覽器根據文件擴展名決定它是哪種MIME類型,除非發送了Content-type HTTP標頭。

您可以在服務器端使用apache_request_headers()讀取由xhr.setRequestHeader發送的http標頭。

要通過XHR2發送的文件,最簡單的方法是使用FormData對象,看到上傳文件或團塊部分​​。