我正在为我的应用程序开发一个捆绑系统,用户可以在其中上传具有以下结构的压缩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中获取文件扩展名?