我正在为我的应用程序开发捆绑系统,用户可以上传具有以下结构的压缩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并返回它的数据(文件不被移动)。
答案 0 :(得分:-1)
检索上传文件的扩展名
$extension = Input::file('photo')->getClientOriginalExtension();
来源:http://laravel.com/docs/4.2/requests
或者
$path = $_FILES['image']['name'];
$ext = pathinfo($path, PATHINFO_EXTENSION);