使用php的多个下载文件

时间:2012-02-14 08:38:54

标签: php codeigniter

我正在构建一个网站,允许用户根据用户选择下载一组图像。如何下载多个文件?是否可以一次下载多个文件?

如果一次只能下载1个文件,我该如何“创建”5个文件,将它们压缩,然后让用户下载该产品的zip文件?

由于

5 个答案:

答案 0 :(得分:1)

您一次只能进行一次下载。

如果您想压缩文件,请查看this

您可以使用file_put_contents()创建文件。

<强>更新

第二个想法......如果你为每个文件打开一个新的标签/窗口,也许你可以开始多次下载。但浏览器可能会阻止这些弹出窗口:

<script type="text/javascript">
    window.open('download.php?name=file1','_newtab');
    window.open('download.php?name=file2','_newtab');
    window.open('download.php?name=file3','_newtab');
</script>

答案 1 :(得分:0)

你可以下载很多压缩文件格式,看看这个:

http://www.php.net/manual/en/refs.compression.php

答案 2 :(得分:0)

您无法下载多个文件。您必须压缩它们并将用户的浏览器重定向到zip。

答案 3 :(得分:0)

您可以使用PHP ZIP类来满足您的需求。

此代码为您创建一个zip存档:

    <?php
function createZipFile($files = array(), $filePath){
    // Check if $files we had contains files
    if(is_array($files)){
        // $files contains files, loop through them
        foreach($files as $file){
            // Does the file exist?
            if(file_exists($file)){
                $filesToBeZipped[] = $file;
            }
        }
    }

    if(count($filesToBeZipped)){
        // Create your new zip archive
        $zipArchive = new ZipArchive();
        if($zipArchive->open($filePath, ZIPARCHIVE::CREATE) !== true){
            return false;
        }else{
            foreach($filesToBeZipped as $file) {
                $zipArchive->addFile($file,$file);
            }

            $zipArchive->close();
            return file_exists($filePath);
        }
    }else{
        return false;
    }
}

$files = array(
  'filename1.extension',
  '/path/to/filename/filename.extension',
);

$action = createZipFile($files,'yourSampleArchive.zip');
?>

答案 4 :(得分:-1)

Php一次只能发送一个文件,但你可以使用php生成javascript代码,调用多个php文件。