使用PHP检索提取的zip文件的目录结构



我正在为我的应用程序开发一个捆绑系统,用户可以在其中上传具有以下结构的压缩zip文件:

name_of_file.zip
  src/
    file.jar
  thumbnail.png
  meta.json

我想在使用 PHP 提取后验证此结构。验证结构后,我将缩略图.png和/src/source.jar 移动到我的服务器上。我还将解析meta.json并从中返回数据。

所以这是我的类到目前为止的样子($this->archive是ZipArchive的一个实例):

/**
 * Process and parse a bundle.
 * 
 * @param  UploadedFile  $zip
 * @param  array $paths
 * 
 * @return boolean
 */
private function bundle($zip, array $paths)
{
   $status = $this->archive->open($zip->getRealPath());
    if($status === false)
        return false;
    // Before getting here I need to verify the files exist...
    $this->archive->extractTo($paths['software'], ['src/file.jar']);
    $this->archive->extractTo($paths['thumbnail'], ['thumbnail.png']);
    // Cool, files moved now read the meta.json file...
}

如果你已经猜到了,那就是拉拉维尔。

我现在只想验证结构。完成结构后,我需要做一些简单的文件验证(一些关于获取文件扩展名的提示?

在所有这些结束时,文件.jar和缩略图.png将被移动到它们的位置,meta.json将被解析并从中返回数据(文件不会被移动)。

检索上传文件的扩展

$extension = Input::file('photo')->getClientOriginalExtension();

来源: http://laravel.com/docs/4.2/requests

$path = $_FILES['image']['name'];
$ext = pathinfo($path, PATHINFO_EXTENSION);

来源:如何在PHP中获取文件扩展名?