当文件以TEXT而不是blob的形式存储在mysql表中时,如何从php下载文件


How to download a file from php, when it is stored in mysql table as a TEXT, not blob?

我还希望能够格式化扩展,例如向其添加.xml或其他内容。我知道如何下载一个blob文件,包括所有的文件大小、名称等(更改标题),但我只需要一个文本文件吗?

有几种方法可以实现这一点。我会像这样设置一个表"文件":

CREATE TABLE  'files' (
id INT( 5 ) NOT NULL AUTO_INCREMENT,
extension VARCHAR( 4 ) NOT NULL DEFAULT 'txt',
content_type VARCHAR( 20 ) NOT NULL DEFAULT 'text/plain',
data VARCHAR( 100000 ) NOT NULL,
PRIMARY KEY (id) );

download.php代码:

$id = mysqli_real_escape_string($link, $_GET['id']);
$SELECT = "SELECT * FROM files WHERE id = $id";
$result = mysqli_query($SELECT, $link);
$result = mysqli_fetch_assoc($result);
header("content-type: $result['content_type']");
echo $result['data'];

html:

<a href="download.php?id=$_GET['id']">download file</a>