【问题标题】:Upload Zip file in PHP在 PHP 中上传 Zip 文件
【发布时间】:2013-06-15 20:22:01
【问题描述】:

我想上传一个 zip 文件并使用 php 将其解压缩到一个文件夹中。我正在使用此代码:

$zip = new ZipArchive;              
if ($zip->open($filename) == TRUE){                     
     $zip->extractTo('Articles/');          
     $zip->close();                     
     $isql="update articles set a_file='$newfile' where a_id='$fpk'"; 
     $urec=mysql_query($isql);                                          
} 
else {                  
     echo 'failed';                 
} 

但它显示了这些警告:

警告:ZipArchive::extractTo() [ziparchive.extractto]:无效或 D:\xampp\htdocs\Constructor\adminhome.php 中的统一化 Zip 对象 第 36 行

警告:ZipArchive::close() [ziparchive.close]:D:\xampp\htdocs\Constructor\adminhome.php 中的 Zip 对象无效或未初始化 第 37 行...

我应该包含 ziparchive 库吗?如果是,那我该怎么做?

【问题讨论】:

  • 我认为这是错误 $zip = new ZipArchive();
  • 您是否在 HP 中处理过文件上传并在尝试打开文件之前使用move_uploaded_file() 将文件移动到文件系统中?
  • 不,我没有。我认为它会自动上传和提取文件...我认为这是问题..
  • 您必须安装 ZipArchive,否则您会更早遇到错误。你检查过 $filename 确实存在吗?
  • thanx Mike W。这就是问题所在。它已成功完成。我只是忘记在提取文件之前上传文件。这就是问题发生的原因..

标签: php upload zipfile


【解决方案1】:

您应该检查 open 方法是否使用 ===(类型检查)返回 TRUE,否则从 open 方法返回的某些错误代码可能评估为 TRUE。

安装请关注this link

【讨论】:

  • 实际上我在解压之前没有上传文件。这就是问题发生的原因。现在它解决了。thanx。
【解决方案2】:
Basically problem in our open method use bellow code 

$opened = $zip->open( $filename, ZIPARCHIVE::CREATE | ZIPARCHIVE::OVERWRITE );

I think you are using php 5.2.8 it does not work and gives this warning:

【讨论】:

  • 实际上我在解压之前没有上传文件。这就是问题发生的原因。现在它解决了.thanx。
猜你喜欢
  • 1970-01-01
  • 2012-11-09
  • 2012-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-16
  • 1970-01-01
相关资源
最近更新 更多