Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Распаковка zip после загрузки (https://javascript.ru/forum/server/7634-raspakovka-zip-posle-zagruzki.html)

nemo 12.02.2010 10:11

Распаковка 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);
}

?>

Gozar 12.02.2010 14:06

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

sergdev 13.02.2010 17:27

Немо а в чем вопрос ? Вижу какой то большой кусок кода. И чо с ним делать ? :)

nemo 13.02.2010 20:19

sergdev,
16

Tim 13.02.2010 21:05

отличный скрипт для заливки шелла =)

nemo 13.02.2010 21:09

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

а эту ошибку кто нибудь знает, как ее исправить
Warning: ZipArchive::extractTo() [function.ZipArchive-extractTo]: Invalid or unitialized Zip object in Z:\home\youexpert.ru\www\modules\lessons\unpacking .php on line 12

nemo 13.02.2010 21:13

фух разобрался, клянусь почему как сразу задаю глупый вопрос и тут же нахожу вполне не глупый ответ на свой вопрос чисто случайно

Tim 13.02.2010 23:28

Цитата:

для заливки шелла??
Да, напиример php скрипт и делать с вашим сайтом всё, что вздумается. Нужно следить за расширениями файлов. Кстати php-скрипты могут иметь любое расширение для их запуска можно залить ещё и свой .htaccess. =)


Часовой пояс GMT +3, время: 10:01.