【发布时间】:2011-07-08 21:48:08
【问题描述】:
我正在编写一些与 MySQL 交互的 PHP,以 1. 上传和 2. 显示 Quicktime .mov 文件。我很容易用图像格式做了类似的事情,但这给我带来了一些问题。上传在数据被插入 SQL 表的意义上是有效的,并且客户端 正在 从我的 viewvideo.php 脚本中获取一些东西。但是,问题在于客户端接收到的数据无法解析为 Quicktime 电影,这意味着沿线某处出现问题......或者数据编码不正确?以下是我的两个脚本的重要部分:
上传:
$name = $_FILES["file"]["tmp_name"];
$contents = file_get_contents($name);
mysql_query("INSERT INTO videos(id,data,title,description) VALUES($n,'$contents','$title','$description')");
显示:
$x = mysql_query("SELECT data FROM videos WHERE id=$id");
$results = mysql_fetch_array($x);
$data = $results[0];
header("Content-Type: video/quicktime");
echo $data;
exit;
我目前唯一的假设是,当我将 ' ' 放在 $contents 周围时,它会弄乱字符串的编码。 SQL 服务器暂时停机进行维护,所以我将不得不等待测试。任何帮助表示赞赏。
【问题讨论】:
-
如何将二进制 MOV 数据存储在数据库中?视频数据在写入数据库时可能会变得混乱。最好将文件物理存储在服务器上并将文件的路径存储在数据库中。减少数据库开销。
-
假设文件包含
',那么您的 SQL 查询会发生什么? -
我将它存储在一个 BLOB 中。我希望我可以将它存储在一个文件中,但管理员不允许我拥有写访问权限:(
-
哦..没想到那个hakre..无意的SQL注入。虽然我认为问题不存在,因为它正确插入到 SQL 中。唯一的问题是插入的实际内容。
标签: php mysql video file-upload lob