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

时间:2014-12-16 00:36:50

标签: php laravel ziparchive

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

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

我想用PHP提取后验证这个结构。验证结构后,我会将thumbnail.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...
}

如果你已经猜到了,那就是laravel。

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

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

1 个答案:

答案 0 :(得分:-1)

检索上传文件的扩展名

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

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

或者

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

来源:How to get the file extension in PHP?