在phpmyadmin数据库中存储视频

时间:2016-01-13 01:47:43

标签: php mysql

我创建了一个显示视频内容的数据库。我尝试将视频剪辑存储在我的数据库中作为longblob但文件大小太大。我的视频剪辑以高清录制,这是拍摄清晰照片所必需的。

我尝试将文件路径存储为数据库中的varchar,但我不确定我是否正确执行。我正在将视频的位置存储在我的计算机上。

我的一个文件路径如下:C:/ wamp / www / com904 / eNISAT /密码/更改密码Tutorial.wmv。

我尝试从我的表格中选择所有内容以在我的php页面displayVideos.php上显示视频但我在html表格中的文本中得到了我的文件路径输出。

以下是我的displayVideos.php文件中的代码。

<?php

require_once("db_connection.php");


//Start session
/*
Sessions is a mechanism to preserve data across subsequent accesses. Using   sessions, a website is able to maintain state, that is, 
remember which requests they received previously. Without sessions, websites would not have progressed beyond simple static HTML pages.
*/
session_start();

//Select database
$database = "com904";
$db = mysql_select_db($database) or die("Unable to select database");

include_once 'db_connection.php';
?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>File Uploading With PHP and MySql</title>
<link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body bgcolor="sky blue">
<center>
<div id="header">
<h1> Click on each video to view your tutorials <h1/>
</div>
<div id="body">
<table width="80%" border="1"bgcolor = "white">

<tr>
<th colspan="4">Your eNISAT Tutorials
</tr>
<tr>
<td>Support Question</td>
<td>Video</td>
</tr>
<?php

$sql="SELECT * FROM enisatquestion";
$result_set=mysql_query($sql);
while($row=mysql_fetch_array($result_set))
{
?>
    <tr>
    <td><?php echo $row['eNISATQuestion'] ?></td>
    <td><?php echo $row['eNISATVideo'] ?></td>
    </tr>
    <?php
 }
 ?>
 </table>

 </div>
 </body>
 </html>

1 个答案:

答案 0 :(得分:1)

您几乎肯定希望将相对URL实际存储在数据库中(com904/eNISAT/Password/Change Password Tutorial.wmv)而不是绝对URL,而且绝对不是您已经完成的 on disk 路径。即使您决定显示绝对URL,也可以通过PHP代码执行此操作,而不是将主机名存储在数据库中。

一旦调整了存储的路径,就需要调整输出的显示。令人惊讶的是,这些教程都没有解决这个问题。请尝试使用URL作为链接目标打印href,而不是打印URL。您可以随意制作链接文本;可能只提取文件名或从数据库中的title字段中提取。

此外,在将结果插入数据库之前,您应该对结果进行URL转义。 PHP提供了几个可以执行此操作的功能(每个功能都与其他功能有所不同,因此您应该在决定之前对每个功能进行评估)。