如何使用数据库中存在的文件进行压缩下载?

时间:2011-05-23 14:20:38

标签: php mysql

我想为我的用户制作某种用户面板 - 在他们将更新面板上的信息之后,它将在数据库中为他们创建一个新行,其中包含我构建的原始源代码但是编辑后的字段制成。

示例:

用户名:[ _ __ _ ___]

PageID:[ _ __ _ ___]

他们填写它,当他们按下更新时,它会自动将数据插入预先制作的代码到表格中的新字段。

<?php
$username = ? (whats the best way to insert UserName textarea value in here?)
$pageid = ? (whats the best way to insert UserName textarea value in here?)
?>

现在这是第一个问题:在这里插入UserName textarea值的最佳方式是什么?

第二个问题是如何在插入时自动加密(我不关心它的加密方式,即使它不会被IonCube加密也没问题)

最后也是最重要的问题是如何制作一个自动功能,当他们按“更新”时会自动从SQL字段创建文件,并提示他们用他们的文件下载压缩文件(I不希望在我的服务器上存储任何这些文件,因为它们可能会中断其中一个文件,因为可能有100个用户同时执行此操作)

伙计们相信我,我一直在网上寻找这个答案,并没有找到任何东西......(除了这些东西,我发现我需要的一切)。

感谢未来的协助人员!

最诚挚的问候,Rico S.

1 个答案:

答案 0 :(得分:1)

1)最好的方法是使用某种格式化 把你这样的模板 $template = "whats the best way to insert %%UserName%% %%textarea%% value in here.";

然后创建一个类似

的数组

$trans = array ("%%UserName%%" => $username, "%%textarea%% => $textarea);

然后使用php的strtr函数将其转换为

$data_to_store = strtr($template, $trans);

2)你可以找到很多加密和解密算法以及php类来检查PHP Classes

3)你可以试试这个。但我不能100%确定它是否正常工作。 使用PHP的ZipArchive目录 然后将内容加载到字符串中 然后

<?php

header('Content-Disposition: attachment; filename="downloaded.pdf"');

$zip = new ZipArchive;
$res = $zip->open('php://stdout', ZipArchive::CREATE);
if ($res === TRUE) {
    $zip->addFromString('file.txt', $content_populated_from_db);
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
exit;

?>

我希望这有效,如果它没有尝试更改ZipArchive::open的标志。如果它不起作用那么。在这种情况下,让我知道,与你的代码,我可能能够帮助你。到目前为止,我还没有尝试过。