到目前为止,我还没有找到任何解决方案,所以我真的需要问一下这个问题。
我正在构建一个视频托管网站,使用PHP和mySQL以及上传视频教程(在我的网站中称为“answers”)以响应请求在爱好制作活动中提供帮助。
我需要我的网站在创建新视频记录时提取新上传文件的元数据(将被放入mySQL中的 answers 表中)。< / p>
到目前为止,我完全基本上传和存储了新文件,您可以在这里自己阅读代码:
function insert_answer($answer) {
global $db;
$errors = validate_answer($answer);
if(!empty($errors)) {
return $errors;
}
$fileowner = $_SESSION['user_id'];
$filename = $_FILES['videoUpload']['name'];
$filename = $fileowner.'-'.$filename;
$filetype = $_FILES['videoUpload']['type'];
$filesize = $_FILES['videoUpload']['size'];
$cname = str_replace(" ","_",$filename);
$tmp_name = $_FILES['videoUpload']['tmp_name'];
$target_path = "../private/media/";
$target_file = $target_path . basename($cname);
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
move_uploaded_file($_FILES['videoUpload']['tmp_name'], $target_file);
$author = $_SESSION['user_id'];
$mysqldate = date('H:i d/m/Y');
$sql = "INSERT INTO answers ";
$sql .= "(user_id, request_id, title, content, tags, date, video, length) ";
$sql .= "VALUES (";
$sql .= "'" . db_escape($db, $author) . "',";
$sql .= "'" . db_escape($db, $answer['request_id']) . "',";
$sql .= "'" . db_escape($db, $answer['title']) . "',";
$sql .= "'" . db_escape($db, $answer['content']) . "',";
$sql .= "'" . db_escape($db, $answer['tags']) . "',";
$sql .= "'" . db_escape($db, $mysqldate) . "',";
$sql .= "'" . db_escape($db, $target_file) . "',";
$sql .= "'" . db_escape($db, $answer['length']) . "' ";
$sql .= ")";
$result = mysqli_query($db, $sql);
// For INSERT statements, $result is true/false
if($result) {
return true;
} else {
// INSERT failed
echo mysqli_error($db);
db_disconnect($db);
exit;
}
}
目前,我缺少记录上传视频长度的解决方案,可能还有其他我可能不知道的元数据可能有用。 我之前尝试过 exif_read_data 来提取元数据,直到我得知它只适用于图像文件。
为了清楚起见,在为答案表创建新记录时,我选择要上传的文件以及在单击提交前填写表单。点击提交后,网站就会提取元数据并将其记录到新条目中。
请注意我在Plesk建立这个网站作为大学任务的一部分所以我不确定服务器端工具是否有用,我仍然是网页设计的新手。< / p>
任何帮助和建议将不胜感激。