2014-12-20 62 views
0

我想用php上傳mp4文件,並且我成功了,但之後,文件無法用VLC運行,即使它可以在上傳之前運行。該錯誤消息說,該文件無法打開給我的文件的路徑,並以(壞文件描述符)結束。 我做了在php.ini文件中的以下配置:上傳mp4文件

file_uploads = On 
upload_max_filesize = 25M 
post_max_size = 25M 

這裏是我的代碼:

if ($_FILES["video"]["name"] == "") { 
    $error = "No video imported."; 
    } 
    else { 
    if (file_exists("uploads/" . $_FILES["video"]["name"])) { 
     $error = "The file already exists."; 
    } 
    else if ($_FILES["video"]["type"] != "video/mp4") { 
     $error = "File format not supported."; 
    } 
    else if ($_FILES["video"]["size"] > 26214400) { 
     $error = "Only files <= 25ΜΒ."; 
    } 
    else { 
     move_uploaded_file($_FILES["video"]["tmp_name"], "uploads/" . $_FILES["video"]["name"]); 
    } 
    } 

<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post" enctype="multipart/form-data"> 
    <fieldset> 
     <div class="area"> 
     <label for="path">Select file:</label> 
      <input class="upload" type="file" name="video"></input> 
      <span><?php echo $error; ?></span><br /> 
     </div> 
    </fieldset> 

    <input type="submit" name="insert" value="upload"></input> 
</form> 
+1

如果您通過FTP或SSH下載視頻文件,視頻文件是否仍然有效? – chrki

+1

用文本編輯器打開視頻,檢查錯誤信息的開始和結束 –

回答

2

你對線4 & 5.語法錯誤,它應該是

} elseif (file_exists("uploads/" . $_FILES["video"]["name"])) { 

不:

} else { 
    if (file_exists("uploads/" . $_FILES["video"]["name"])) { 

此代碼已經過測試並正在運行。

<?php 
if ($_FILES["video"]["name"] == "") { 
    $error = "No video imported."; 
} elseif (file_exists("uploads/" . $_FILES["video"]["name"])) { 
    $error = "The file already exists."; 
} elseif ($_FILES["video"]["type"] != "video/mp4") { 
    $error = "File format not supported."; 
} elseif ($_FILES["video"]["size"] > 26214400) { 
    $error = "Only files <= 25??."; 
} else { 
    move_uploaded_file($_FILES["video"]["tmp_name"], "uploads/" . $_FILES["video"]["name"]); 
} 

?> 
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post" enctype="multipart/form-data"> 
    <fieldset> 
     <div class="area"> 
     <label for="path">Select file:</label> 
      <input class="upload" type="file" name="video"></input> 
      <span><?php echo $error; ?></span><br /> 
     </div> 
    </fieldset> 

    <input type="submit" name="insert" value="upload"></input> 
</form>