我创建了一个显示视频内容的数据库。我尝试将视频剪辑存储在我的数据库中作为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>
答案 0 :(得分:1)
您几乎肯定希望将相对URL实际存储在数据库中(com904/eNISAT/Password/Change Password Tutorial.wmv
)而不是绝对URL,而且绝对不是您已经完成的 on disk 路径。即使您决定显示绝对URL,也可以通过PHP代码执行此操作,而不是将主机名存储在数据库中。
一旦调整了存储的路径,就需要调整输出的显示。令人惊讶的是,这些教程都没有解决这个问题。请尝试使用URL作为链接目标打印href
,而不是打印URL。您可以随意制作链接文本;可能只提取文件名或从数据库中的title
字段中提取。
此外,在将结果插入数据库之前,您应该对结果进行URL转义。 PHP提供了几个可以执行此操作的功能(每个功能都与其他功能有所不同,因此您应该在决定之前对每个功能进行评估)。