2013-10-28 89 views
0

我真的很感謝有人這樣做,並且解釋他們做了什麼,所以我可以更好地理解它。我需要將視頻文件擴展名更改爲mp4

目前代碼:

  $name = $_FILES['file']['name']; 
      $extension = strtolower(substr ($name, strpos($name, '.') + 1)); 
      $newextension = 'mp4'; 
      $type = $_FILES['file']['type']; 

      $temp = $_FILES['file']['tmp_name']; 

      $location = 'thelocation'; 

      if ($extension!==$newextension) 
      { 

      $extension = $newextension; 

如果這不能做,有人可以告知如何所有無.mp4文件成.mp4文件服務器端轉換的方法的我,如果它是一個自動的方法或者將不得不手動完成。

+3

你不能輕易更改文件的擴展名。當你有.avi或其他東西時,你必須將它轉換爲mp4格式。 – Stony

+0

@Stony - 公平地說,他說他只是想改變擴展名,而不是轉換格式-_- – admdrew

+0

@admdrew:它的上傳......這意味着他試圖上傳一個視頻文件......當你改變它不工作的擴展名。 – Stony

回答

1

請記住,您正在使用臨時文件,需要將它從臨時目錄複製到最終位置,如/videos/video.mp4。

因此,只要將文件複製到最終位置,您就可以更改擴展名。

首先,你最好使用pathinfo()函數用於檢索擴展:

$extension = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION); 

然後,您可以過濾來自名老延伸,並追加新的擴展:

$newfilename = basename($_FILES['file']['name'], $extension).$newextension; 

編輯:而不是substr和strrpos,我現在使用basename()與擴展名作爲後綴來檢索文件名,這使得代碼更短,更具可讀性。

然後將該文件複製到新的位置:

copy($_FILES['file']['tmp_name'], 'full/path/to/your/videos/'.$newfilename);