Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.02.2010, 09:11
Профессор
Отправить личное сообщение для nemo Посмотреть профиль Найти все сообщения от nemo
 
Регистрация: 22.05.2009
Сообщений: 505

Распаковка zip после загрузки
<?php
$login=!empty($_POST['upload_login'])?$_POST['upload_login']:null;
$date_load=date('YmdHis');
if(isset($_FILES['upload_demo'])&&$_FILES['upload_demo']['error']===0){
if($_FILES["upload_demo"]["type"]=="application/zip"){
if($_FILES['upload_demo']['size']<"100000000"){
if(!file_exists('./loads/'.$login.'')){mkdir("./loads/$login",0700);}
if(!file_exists('./loads/'.$login.'/demo')){mkdir("./loads/$login/demo",0700);}
mkdir("./loads/$login/demo/$date_load",0700);
if(move_uploaded_file($_FILES['upload_demo']['tmp_name'],'./loads/'.$login.'/demo/'.$date_load.'/'.$_FILES['upload_demo']['name']));
}}}
?>
<body onload="parent.document.getElementById('upload_demo_ok').innerHTML=document.body.innerHTML"><?php if(is_dir('./loads/'.$login.'/demo/'.$date_load.'')){echo('Готово. Демо загружено<style type="text/css">.upload_demo_form{display:none} .error_lesson, .error_demo{display:none!important}</style>');}else{echo'<style type="text/css">.error_lesson, .error_demo{display:block}</style>';}?></body>
<iframe id="iframe_load_demo" class="none" onload="parent.document.getElementById('upload_demo_final').innerHTML=document.getElementById('iframe_load_demo').innerHTML"><?php $login=!empty($_POST['upload_login'])?$_POST['upload_login']:null; if(file_exists('./loads/'.$login.'/demo/'.$date_load.'')){echo('http://youexpert.ru/modules/lessons/loads/'.$login.'/demo/'.$date_load.'/example');}?></iframe>

// это скрипт распаковки, его проблема в том что он не дожидается загрузки файла, и поэтому не видит файла. Вопрос, как заставить этот скрипт дождаться завершение загрузки файла, чтобы он его потом мог распаковать?
<?php 
// если путь до папки куда скидывается файл есть 
if(is_dir('./loads/'.$login.'/demo/'.$date_load.''))
{
// путь до папки в котором находится файл который нужно извлечь
$archive_dir=('./loads/'.$login.'/demo/'.$date_load.'');
// куда извлечь
$dest_dir=('./loads/'.$login.'/demo/'.$date_load.'/example');
//функция
$zip=new ZipArchive();
// название файла
$fileName=$archive_dir.($_FILES['upload_demo']['name']);
//функция
if($zip->open($fileName)!==true){exit(1);}$zip->extractTo($dest_dir);$zip->close();exit(0);
}

?>
Ответить с цитированием
  #2 (permalink)  
Старый 12.02.2010, 13:06
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

надо найти ошибку
например поставит вывод <body> в конец скрипта

Последний раз редактировалось Gozar, 12.02.2010 в 13:09.
Ответить с цитированием
  #3 (permalink)  
Старый 13.02.2010, 16:27
Аспирант
Отправить личное сообщение для sergdev Посмотреть профиль Найти все сообщения от sergdev
 
Регистрация: 08.12.2009
Сообщений: 32

Немо а в чем вопрос ? Вижу какой то большой кусок кода. И чо с ним делать ?
Ответить с цитированием
  #4 (permalink)  
Старый 13.02.2010, 19:19
Профессор
Отправить личное сообщение для nemo Посмотреть профиль Найти все сообщения от nemo
 
Регистрация: 22.05.2009
Сообщений: 505

sergdev,
16
Ответить с цитированием
  #5 (permalink)  
Старый 13.02.2010, 20:05
Аватар для Tim
Tim Tim вне форума
Профессор
Отправить личное сообщение для Tim Посмотреть профиль Найти все сообщения от Tim
 
Регистрация: 04.06.2009
Сообщений: 1,703

отличный скрипт для заливки шелла =)
__________________
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
Самые главные в жизни вещи - не вещи! (было написано на одном гараже =)
Ответить с цитированием
  #6 (permalink)  
Старый 13.02.2010, 20:09
Профессор
Отправить личное сообщение для nemo Посмотреть профиль Найти все сообщения от nemo
 
Регистрация: 22.05.2009
Сообщений: 505

для заливки шелла??

а эту ошибку кто нибудь знает, как ее исправить
Warning: ZipArchive::extractTo() [function.ZipArchive-extractTo]: Invalid or unitialized Zip object in Z:\home\youexpert.ru\www\modules\lessons\unpacking .php on line 12
Ответить с цитированием
  #7 (permalink)  
Старый 13.02.2010, 20:13
Профессор
Отправить личное сообщение для nemo Посмотреть профиль Найти все сообщения от nemo
 
Регистрация: 22.05.2009
Сообщений: 505

фух разобрался, клянусь почему как сразу задаю глупый вопрос и тут же нахожу вполне не глупый ответ на свой вопрос чисто случайно
Ответить с цитированием
  #8 (permalink)  
Старый 13.02.2010, 22:28
Аватар для Tim
Tim Tim вне форума
Профессор
Отправить личное сообщение для Tim Посмотреть профиль Найти все сообщения от Tim
 
Регистрация: 04.06.2009
Сообщений: 1,703

Цитата:
для заливки шелла??
Да, напиример php скрипт и делать с вашим сайтом всё, что вздумается. Нужно следить за расширениями файлов. Кстати php-скрипты могут иметь любое расширение для их запуска можно залить ещё и свой .htaccess. =)
__________________
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
Самые главные в жизни вещи - не вещи! (было написано на одном гараже =)

Последний раз редактировалось Tim, 13.02.2010 в 22:33.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Состояние загрузки, на основе фрейм nemo Общие вопросы Javascript 2 09.12.2009 12:23
Запуск скрипта после загрузки страницы vital8 Элементы интерфейса 2 24.09.2009 17:06
Подмена html-тегов после загрузки страницы xordeer jQuery 1 09.04.2009 21:16
Действие после полной загрузки Воитель Общие вопросы Javascript 4 02.10.2008 17:20
Выполнить код после загрузки изображения EugenyK Events/DOM/Window 2 15.07.2008 09:09