以下は、ファイルをサーバーにアップロードし、アップロードされた各ファイルの名前をデータベースに保存するコードです。
<?php
// connect to the database
include('connect.php');
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
die();
}
if ($_FILES['fileVideo']['error'] === UPLOAD_ERR_OK) {
$result = 0;
if( file_exists("VideoFiles/".$_FILES['fileVideo']['name'])) {
$parts = explode(".",$_FILES['fileVideo']['name']);
$ext = array_pop($parts);
$base = implode(".",$parts);
$n = 2;
while( file_exists("VideoFiles/".$base."_".$n.".".$ext)) $n++;
$_FILES['fileVideo']['name'] = $base."_".$n.".".$ext;
move_uploaded_file($_FILES["fileVideo"]["tmp_name"],
"VideoFiles/" . $_FILES["fileVideo"]["name"]);
$result = 1;
}
else
{
move_uploaded_file($_FILES["fileVideo"]["tmp_name"],
"VideoFiles/" . $_FILES["fileVideo"]["name"]);
$result = 1;
}
$videosql = "INSERT INTO Video (VideoFile)
VALUES (?)";
if (!$insert = $mysqli->prepare($videosql)) {
// Handle errors with prepare operation here
}
//Assign the variable
$vid = 'VideoFiles/'.$_FILES['fileVideo']['name'];
//Dont pass data directly to bind_param store it in a variable
$insert->bind_param("s",$vid);
$insert->execute();
$id = $mysqli->insert_id;
if ($insert->errno) {
// Handle query error here
}
$insert->close();
}else{
echo "Upload was not successful";
}
?>
<script language="javascript" type="text/javascript">
window.top.stopVideoUpload(<?php echo $result; ?>,'<?php echo $id; ?>', '<?php echo $_FILES['fileVideo']['name']; ?>');
</script>
</body>
</html>
現在、jwplayer を使用していますが、このページのビデオ形式と一致するビデオ ファイルが必要です。
そのため、ファイルがサーバーにアップロードされたときに、サーバー上でファイルを自動的にエンコードできるようにする必要があります。ユーザーがビデオ ファイルを自分で手動でエンコードしようとするのではなく、自動的にエンコードすることを望んでいます。しかし、私の質問は、サーバー側のファイルの自動エンコードを機能させるにはどうすればよいですか?
動画ファイルのアップロード方法を示すデモがあります: DEMO
デモを使用するには:
ボタンをクリックする
Add Question
と、ファイル入力がテーブルに表示されますすぐにアップロードをクリックすると、どのビデオ ファイル形式が許可されているかを示す簡単な検証が表示されます (これは、ビデオ ファイルの拡張子を確認することによって簡単に行われます)。
ビデオ ファイルを参照し、選択してクリックし
Upload
、アップロードが完了するまで待ちます (時間を節約するために短いビデオ ファイルをお勧めします)。ファイルがアップロードされると、成功メッセージが表示され、ビデオ ファイルがサーバーにアップロードされます。