Beispiel #1
0
 protected function zip_upload($fobject, $name, $data, $action, $item)
 {
     $res = array();
     $mtype = MIME::type_for_file($fobject->original_name);
     if ($mtype->type == 'application/zip;zip') {
         $zip = new ZipArchive();
         $ro = $zip->open($fobject->path);
         if ($ro === true) {
             $dir = CMS::temp_dir() . '/' . $fobject->name;
             $dir_object = IO_FS::mkdir($dir, null, true);
             if ($dir_object) {
                 $zip->extractTo($dir);
                 $objects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS));
                 foreach ($objects as $k => $object) {
                     $base = trim($object->getBasename($object->getExtension()), '. ');
                     if ('' !== $base) {
                         $upload = Net_HTTP::Upload($object->getPathname(), $object->getFilename(), array('name' => $object->getFilename(), 'type' => MIME::type_for_file($object->getPathname())->type, 'tmp_name' => $object->getPathname(), 'error' => 0, 'size' => $object->getSize()));
                         $res[] = $this->upload_file($upload, $name, $data, $action, $item);
                     }
                 }
                 $dir_object->rm();
             }
             $zip->close();
         }
     }
     return $res;
 }
Beispiel #2
0
 /**
  * Возвращает MIME-тип файла
  *
  * @return string
  */
 protected function get_mime_type()
 {
     return $this->mime_type ? $this->mime_type : ($this->mime_type = MIME::type_for_file($this->original_name));
 }
Beispiel #3
0
 /**
  * Возвращает MIME-тип, соответствующий файлу, в виде объекта класса MIME.Type
  *
  * @return MIME_Type
  */
 private function get_mime_type()
 {
     return $this->mime_type ? $this->mime_type : ($this->mime_type = MIME::type_for_file($this));
 }