【发布时间】:2017-10-17 06:18:14
【问题描述】:
我正在使用以下 php 脚本通过 php 将文件添加到 Zip。
<?php
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
session_start();
$zip = new ZipArchive();
$zip_name = time().".zip"; // Zip name
$zip->open($zip_name, ZipArchive::CREATE);
$filesinSession = $_SESSION['files'];
$filesToAdd = explode(';', $filesinSession);
for($i = 1 ; $i <= sizeof($filesToAdd)-1 ; $i++)
{
//echo $filesToAdd[$i]."<br>";
$zip->addFile($filesToAdd[$i]);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
header('Content-type: application/zip');
header('Content-disposition: filename="' . $zip_name . '"');
header("Content-length: " . filesize($zip_name));
$zip_file = file_get_contents($zip_name);
readfile($zip_name);
exit();
?>
注意:会话包含文件名分号分隔。
上述代码执行后生成的文件。当我以崇高的文本打开该文件时已损坏。它显示以下错误。
//////////////////////////////////////////////////////////////////// ////////////
警告:filesize(): stat failed for 1508220713.zip in C:\xampp\htdocs\HMApp1\download.php 行 21 b>
警告:file_get_contents(1508220713.zip):无法打开流:C:\xampp\htdocs\HMApp1\download.php 中没有这样的文件或目录 第 22 行
警告:readfile(1508220713.zip):无法打开流: 中没有这样的文件或目录C:\xampp\htdocs\HMApp1\download.php 第 23 行
【问题讨论】:
-
您是否有足够的权限来创建文件¿?
-
@ÁlvaroTouzón 压缩文件是在我的脚本所在的同一文件夹中创建的。但是,当我尝试阅读该 zip 以进行下载时,它会引发上述三个错误。
-
那么似乎 php 没有本地化你的 .zip 文件,
-
@ÁlvaroTouzón 那我该怎么办?
-
你叫 $zip->close(); ?