1

我正在使用 localhost,我想从中下载文件,使用复选框选择多个文件,然后将其下载到一个 zip 文件中,我已经解决了相关问题,但仍然没有解决问题。

这是索引页面的相关行

        <form action="download.php" method="post">
            <tr>
                <td><a href="FontFamily.php?id=<?php echo $Font_Family;?>"><?php echo $Font_Family; ?></a></td>
                <td><a href="Font.php?id=<?php echo $id; ?>"><?php echo $filename; ?></a></td>
                <td><img src="Font_Example.php?id=<?php echo $id; ?>" width="500" height ="100"></td>
                <td align="center" ><input type="checkbox" name="files[]" value="<?php echo $Font_Name ?>"/></td>

    </tr>
    <tr>
        <td></td>
        <td></td>
        <td></td>
        <td><input type="submit" name="formSubmit" value="Download" ></td>
    </tr>
</form>

这是download.php的代码,这些代码是我在网上和这里找到的代码的组合。

    <?php
                            $error = ""; //error holder
                            if(isset($_POST['formSubmit']))
                            {
                            $post = $_POST;
                            $file_folder = "c:\fonts\Arial"; // folder to load files
                            if(extension_loaded('zip'))
                            {
                            // Checking ZIP extension is available
                            if(isset($post['files']) and count($post['files']) > 0)
                            {
                            // Checking files are selected
                            $zip = new ZipArchive(); // Load zip library
                            $zip_name = time().".zip"; // Zip name
                            if($zip->open($zip_name, ZIPARCHIVE::CREATE)!==TRUE)
                            {
                             // Opening zip file to load files
                            $error .= "* Sorry ZIP creation failed at this time";
                            }
                            foreach($post['files'] as $file)
                            {
                            $zip->addFile($file_folder.$file); // Adding files into zip
                            }
                            $zip->close();

                            // push to download the zip
                            header('Content-type: application/zip');
                            header('Content-Disposition: attachment; filename="'.$zip_name.'"');
                            readfile($zip_name);
                            // remove zip file is exists in temp path


                            }
                            else
                            $error .= "* Please select file to zip ";
                            }
                            else
                            $error .= "* You dont have ZIP extension";
                            }
                            ?> 

当我下载 zip 文件时,大小正确,但是当我使用记事本打开检查显示此错误时,文件无法打开

警告:readfile(1371612622.zip):无法打开流:第29行的C:\xampp\htdocs\FontLibrary\download.php中没有这样的文件或目录

第 29 行是

    readfile($zip_name);
4

0 回答 0