Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Класс ZipArchive и FTP

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Не распаковывается ZIP
Нуб ушастый
Отправлено: 30 Ноября, 2014 - 13:49:09
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Нояб. 2014  


Помог: 0 раз(а)




Доброго всем бутербродаУлыбка

Пишу один проект , и нужно по FTP реализовать выгрузку архива на сайт клиента и его распаковку. Архив выгружается, файл-распаковщик создается, директория для распаковки при запросе скрипта тоже создается, но сам архив не распаковывается.

Заметил, что если архив загружен самим мной (т.е. юзером на сайт стандартным методом), то все нормально.

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. ini_set("session.use_trans_sid", true);
  4. $sess=session_id();
  5. chmod("cms.zip",0666);
  6. $zipA=new ZipArchive();
  7. $zipA->open('cms.zip');
  8. $zipA->extractTo('files/');
  9. ?>


Ошибка на скрине. Помогите - что не так?
Прикреплено изображение (Нажмите для увеличения)
Screenshot_2014-11-30-15-47-58.png
 
 Top
Quick
Отправлено: 30 Ноября, 2014 - 22:38:17
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Дек. 2013  


Помог: 0 раз(а)




Файл unpack.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. function unpackZip($dir,$file) {
  3.    if ($zip = zip_open($dir.$file.".zip")) {
  4.      if ($zip) {
  5.        mkdir($dir.$file);
  6.      chmod($dir.$file, 0777);
  7.        while ($zip_entry = zip_read($zip)) {
  8.          if (zip_entry_open($zip,$zip_entry,"r")) {
  9.            $buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
  10.            $dir_name = dirname(zip_entry_name($zip_entry));
  11.            if ($dir_name != ".") {
  12.              $dir_op = $dir.$file."/";
  13.                foreach ( explode("/",$dir_name) as $k) {
  14.                  $dir_op = $dir_op . $k;
  15.                  if (is_file($dir_op)) unlink($dir_op);
  16.                  if (!is_dir($dir_op)) mkdir($dir_op);
  17.             chmod($dir_op, 0777);
  18.                  $dir_op = $dir_op . "/" ;
  19.                  }
  20.                }
  21.            $fp=fopen($dir.$file."/".zip_entry_name($zip_entry),"w+");
  22.         chmod($dir.$file."/".zip_entry_name($zip_entry), 0777);
  23.            fwrite($fp,$buf);
  24.  
  25.            fclose($fp);
  26.  
  27.            zip_entry_close($zip_entry);
  28.        } else
  29.            return false;
  30.        }
  31.        zip_close($zip);
  32.      }
  33.   } else
  34.      return false;
  35.  
  36.   return true;
  37. }
  38. $dir = "files/";
  39. $file = 'cms';
  40. unpackZip($dir,$file);
  41. ?>
Файл cms.zip надо закачать в папку files и загрузить файл unpack.php
Источник: www.php.net
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с файловой системой и файлами »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB