0
我正在創建一個腳本,其中只有特定的視頻類型可以上傳,但目前我卡住了。特定的文件類型上傳不起作用
這裏是我的代碼 -
<?php
$title = isset($_POST['title']) ? $_POST['title'] : null;
$desc = nl2br(isset($_POST['description'])) ? $_POST['description'] : null;
$name = isset($_POST['fullname']) ? $_POST['fullname'] : null;
$email = isset($_POST['email']) ? $_POST['email'] : null;
$country = isset($_POST['country']) ? $_POST['country'] : null;
$video = isset($_FILES['video']);
$videoname = isset($_FILES['video']['name']);
$videotmp = isset($_FILES['video']['tmp_name']);
$videosize = isset($_FILES['video']['size']);
$videotype = isset($_FILES['video']['type']);
$videoacceptable = array(
"video/mp4",
"video/ogg",
"video/quicktime",
);
$videopath = "/videos/";
$videofile = $videopath . $video;
if(isset($_POST['submit'])) {
//ERROR MESSAGES/VALIDATION
if(empty($title)) {
$errors[] = "A title is required";
echo "<style type=\"text/css\"> #title { background-color:#F5A9A9;border:1px solid #DF0101; } </style>";
} elseif(strlen($title) > 80) {
$errors[] = "Your title can only be 80 characters long";
echo "<style type=\"text/css\"> #title { background-color:#F5A9A9;border:1px solid #DF0101; } </style>";
}
if(empty($desc)) {
$errors[] = "A description is required";
echo "<style type=\"text/css\"> #description { background-color:#F5A9A9;border:1px solid #DF0101; } </style>";
}
if(empty($name)) {
$errors[] = "Please enter your full name";
echo "<style type=\"text/css\"> #fullname { background-color:#F5A9A9;border:1px solid #DF0101; } </style>";
} elseif(strlen($name) > 32) {
$errors[] = "Your name can only be 32 characters long";
echo "<style type=\"text/css\"> #fullname { background-color:#F5A9A9;border:1px solid #DF0101; } </style>";
}
if(empty($email)) {
$errors[] = "Please enter your email address";
echo "<style type=\"text/css\"> #email { background-color:#F5A9A9;border:1px solid #DF0101; } </style>";
} elseif(strlen($email) > 50) {
$errors[] = "Your email addess can only be 50 characters long";
echo "<style type=\"text/css\"> #email { background-color:#F5A9A9;border:1px solid #DF0101; } </style>";
} elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$errors[] = "Please enter a valid email address";
echo "<style type=\"text/css\"> #email { background-color:#F5A9A9;border:1px solid #DF0101; } </style>";
}
if($videosize = 0) {
$errors[] = "You forgot to upload a video";
} elseif($videosize >= 20000000) {
$errors[] = "Your video size is too large, 20mb max";
} elseif(!in_array($videotype, $videoacceptable)) {
$errors[] = "The file type is not allowed, only allowed .mp4, .ogg and .mov";
}
if(count($errors) === 0) {
$connect = mysqli_connect("localhost","username","password");
if(!$connect) {
header("Location:"); // ADD ERROR LINK
}
$dbselect = mysqli_select_db("database");
if(!$dbselect) {
header("Location:"); // ADD ERROR LINK
}
$query = mysqli_query("INSERT INTO cover_videos(title, desc, name, email, country, videotmp, videotype, videosize, videopath) VALUES('$title','$desc','$name','$email','$country','$videotmp','$videotype','$videosize','$videopath')");
move_uploaded_file($videotmp, $videofile);
//SEND AN EMAIL TO THE USER
$to = $email;
$subject = "Thank's for your upload";
$message = '
<html>
<head><title>We have received your video</title></head>
<body>
<h3>Good News!</h3>
<p>We have recieved your video and is awaiting approval.</p>
</body>
</html>
';
$headers = 'FROM: no-replyk' . "\r\n";
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers = 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers = 'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
header("Location:"); //SUCCESSFUL UPLOAD PAGE
}
}
?>
所以發生了什麼時,當我去上傳文件,即時通訊上傳.mov文件,但彈出的錯誤消息「文件類型是不允許的,只允許.mp4,.ogg和.mov「,但.mov mime是在videoacceptable數組中,所以我現在有點卡住了,任何知道最新的問題是什麼?
剛剛嘗試了您的建議,並且仍然彈出錯誤消息,感謝您的建議,儘管 – 2014-12-01 17:29:24
請在執行代碼之前嘗試打印$ videotype。這樣可以幫助您瞭解視頻類型的確切價值。 – 2014-12-02 09:18:11