Показать сообщение отдельно
  #1 (permalink)  
Старый 12.02.2010, 10: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);
}

?>
Ответить с цитированием