在MySQL中创建服务器上存储文件的链接

时间:2010-09-02 09:03:37

标签: php mysql

应该很容易做到,但即使经过几天的谷歌搜索,我也不知道。

我使用PHP创建了一个简单的Web表单,允许用户将图像文件上传到服务器,以及信息,例如日期,文件名(唯一,上传时自动重命名)等输入到MySQL表创建。

我可以知道如何在显示时在MySQL字段中上传的“唯一文件名”上创建链接,因此当用户点击时,它会根据唯一的文件名自动打开服务器存储的文件吗?

感谢是否有人可以帮助我。提前谢谢。

1 个答案:

答案 0 :(得分:2)

假设您的表包含字段idtype(MIME类型)和data(二进制数据),这是一个PHP脚本:

<?php //dispimg.php
//example usage: dispimage.php?id=123
$my = new MySQLi('localhost', 'user', 'pass', 'db');
$sql = sprintf('SELECT type, data FROM table WHERE id="%s" LIMIT 1', $my->real_escape_string($id));
if(!$queryResult=$my->query($sql)){
   //query failed, log mysqli_error() somewhere
}
elseif(!$queryResult->num_rows){
   header('HTTP/1.1 404 Not Found');
   echo 'File not found';
}
else($res=$queryResult->fetch_assoc()){
   //optionally, use application/octet-stream instead of a field from database
   header('Content-Type: '.$res['type']));
   // uncomment following line if you want to present the file as download
   //header('Content-Disposition: attachment;filename=download');
   echo $res['data'];
}
?>