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

问题描述 投票:0回答:1

我希望你能帮助我解决这个问题。我测试了一个非常简单的脚本,在下载之前为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();
}

基本上它可以附加将其下载到zip文件中的IP作为评论。

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

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

希望你能协助我正确实现我的脚本,谢谢。

php ziparchive
1个回答
0
投票

原来我是对的,问题是变量$file不正确,因为脚本无法将其定义为对象

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

$file->getFullFilePath()

© www.soinside.com 2019 - 2024. All rights reserved.