通过php下载之前,在生成的zip文件中添加注释

时间:2019-02-26 18:48:56

标签: php ziparchive

希望您能在此问题上为我提供帮助。我测试了一个非常简单的脚本,以便在下载前在zip文件中添加注释,此脚本运行良好,因此现在我决定尝试将其实现到文件托管脚本中,但是无法找到一种编辑该脚本的方法。生成的文件。

在此文件的第59行:https://pastebin.com/i3iBmW8s(为我的文件生成下载链接的文件)中,您可以看到我的编辑,我也将其发布在下面:

$ipaddress = '';
if (getenv('HTTP_CLIENT_IP'))
    $ipaddress = getenv('HTTP_CLIENT_IP');
else if(getenv('HTTP_X_FORWARDED_FOR'))
    $ipaddress = getenv('HTTP_X_FORWARDED_FOR');
else if(getenv('HTTP_X_FORWARDED'))
    $ipaddress = getenv('HTTP_X_FORWARDED');
else if(getenv('HTTP_FORWARDED_FOR'))
    $ipaddress = getenv('HTTP_FORWARDED_FOR');
else if(getenv('HTTP_FORWARDED'))
    $ipaddress = getenv('HTTP_FORWARDED');
else if(getenv('REMOTE_ADDR'))
    $ipaddress = getenv('REMOTE_ADDR');
else
    $ipaddress = 'UNKNOWN';

# Create a new Archive
$zip = new ZipArchive;
# Create the file to archive to
$res = $zip->open($file, ZipArchive::CREATE);
# If create works
if ($res === TRUE) {
    # Create the comment here
    $zip->setArchiveComment(base64_encode($ipaddress));
    $zip->close();
}

基本上,它将注释者的IP地址附加到zip文件中。

作为独立脚本,它可以正常工作,但是我很难将其实现到文件托管脚本中,因为下载文件时,它没有被修改。

我想问题在于变量$ file可能不正确,因为作为独立脚本,足以在其中指定档案名称,以便附加注释然后下载,而使用文件托管脚本,如果我分配保存文件名的变量(即$ file-> originalFilename),则仍然没有任何反应。

希望您能帮助我正确实施我的脚本,谢谢。

1 个答案:

答案 0 :(得分:0)

结果证明我是对的,问题出在变量$file上,这是不正确的,因为脚本无法将其定义为对象

我四处寻找并找到了正确的变量,在文件托管脚本中保存了文件的完整路径,结果是:

$file->getFullFilePath()