嗨,所以我现在有一个有效的代码,允许用户上传视频,但是,它仅适用于较小的视频大小
php代码是:
<?php
require_once('../../../includes/config.php');
if(isset($_POST["submit"])) {
//collect form data
extract($_POST);
$allowedExts = array("ogg", "mp4", "wma");
$extension = pathinfo($_FILES['video']['name'], PATHINFO_EXTENSION);
if ((($_FILES["video"]["type"] == "video/mp4")
|| ($_FILES["video"]["type"] == "video/ogg")
|| ($_FILES["video"]["type"] == "video/wma")
&& ($_FILES["video"]["size"] < 16000000 )
&& in_array($extension, $allowedExts))){
if ($_FILES["video"]["error"] > 0)
{
echo "Return Code: " . $_FILES["video"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["video"]["name"] . "<br />";
echo "Type: " . $_FILES["video"]["type"] . "<br />";
echo "Size: " . ($_FILES["video"]["size"] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES["video"]["tmp_name"] . "<br />";
$upload = $_FILES["video"]["name"];
if (file_exists("../videos/" . $_FILES["video"]["name"]))
{
echo $_FILES["video"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["video"]["tmp_name"],
"../videos/" . $_FILES["video"]["name"]);
echo "Stored in: " . "../videos/" . $_FILES["video"]["name"];
}
}
}else{
echo "Invalid file";
}
try {
//insert into database
$stmt = $db->prepare('INSERT INTO videos (videoTitle,video,editedBy) VALUES (:videoTitle, :video, :editedBy)') ;
$stmt->execute(array(
':videoTitle' => $videoTitle,
':video' => $upload,
':editedBy' => "admin"
));
//redirect to images page
header('Location: videos.php?action=added');
exit;
} catch(PDOException $e) {
echo $e->getMessage();
}
}
?>
这适用于大约3000kb的文件,但是当我尝试上传200000 kb的视频时,它尝试了一段时间后才最终显示“无法访问页面”。
我有什么办法可以处理较大的文件吗?是否可以先压缩文件,以便于处理?
我使用的是000webhost的免费版本,这可能是由于文件大小限制所致吗?
谢谢