php - 使用 PHP 从 url 添加文件创建 zip

标签 php download zip

我想知道是否可以执行以下操作,希望有人可以帮助我。

我想创建一个“下载 zip”功能,但是当个人点击下载时,按钮会从我的外部域中获取图像,然后将它们打包成一个 zip,然后为他们下载。

我已经检查了如何执行此操作,但找不到任何抓取图像并将它们强制压缩为 zip 以供下载的好方法。

我希望有人能提供帮助

最佳答案

# define file array
$files = array(
    'https://www.google.com/images/logo.png',
    'https://upload.wikimedia.org/wikipedia/commons/thumb/5/53/Wikipedia-logo-en-big.png/220px-Wikipedia-logo-en-big.png',
);

# create new zip object
$zip = new ZipArchive();

# create a temp file & open it
$tmp_file = tempnam('.', '');
$zip->open($tmp_file, ZipArchive::CREATE);

# loop through each file
foreach ($files as $file) {
    # download file
    $download_file = file_get_contents($file);

    #add it to the zip
    $zip->addFromString(basename($file), $download_file);
}

# close zip
$zip->close();

# send the file to the browser as a download
header('Content-disposition: attachment; filename="my file.zip"');
header('Content-type: application/zip');
readfile($tmp_file);
unlink($tmp_file);

注意:此解决方案假定您已启用 allow_url_fopen。否则请考虑使用 cURL 下载文件。

关于php - 使用 PHP 从 url 添加文件创建 zip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13930049/

相关文章:

带有百分比进度条的 PHP 压缩/zip 文件 - 这可能吗?

php - 使用 PHP(或查询)在 MySQL 数据库中使用超过数千行的常用词

R 循环并从 yahoo.com 下载股票价格

python - 你如何在python中解压缩非常大的文件?

android - 如何将 ZIP 文件导入 Android Studio?

c# - 找出用户是否完全完成下载

php - Windows 2008 IIS 上 MySql 数据库的 Plesk 密码

php - PHP 中的 header 会覆盖 HTTP 响应代码

php - 使用 onclick 销毁 session

image - 使用 VueJs 复制或下载生成的 QR (vue-qrcode) 代码