Распаковка zip после загрузки

  • Автор темы Автор темы nemo
  • Дата начала Дата начала

nemo

Новичок
Распаковка zip после загрузки

PHP:
<?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);
}

?>
 
запускать надо его после
PHP:
move_uploaded_file($_FILES['upload_demo']['tmp_name'],'./loads/'.$login.'/demo/'.$date_load.'/'.$_FILES['upload_demo']['name']));
 
Дорогой nemo.
Я читаю этот форум во время обеда, именно этот раздел, уже несколько лет. Именно ради таких вопросов, как твои. Особенно удачные темы я показываю коллегам, наслаждаемся вместе. Твое появление на форуме украсило его, я с нетерпением жду твоих новых постов, рассылаю цитаты друзьям.
Спасибо тебе.

Я не регистрировался, просто читал. Но больше не могу. ВОН ИЗ ПРОФЕССИИ! Такие, как ты - позорят не только php, но и вообще веб-программирование. Ты никогда не заработаешь на этом, никогда не научишься, не стоит.
Я не спрашиваю про ВУЗ, но школу ты как, успел закончить? Там ты тоже учился, спрашивая соседей по классу, вместо того, чтоб читать учебники?

PS. Название сайта, который ты "пишешь", особенно иронично выглядит.
Я идиот, убейте меня кто-нибудь.
 
dmmd
трололо?

nemo
код не смотрел, но полагаю что поможет [m]is_uploaded_file[/m]
 
dmmd кстати дело советует...
я вообще удивляюсь почему этого капитана немо ещё не забанили)
 
Beavis
Нет-нет, банить нельзя, столько удовольствия ведь.
 
prolis
не получается, как правильней будет написать можешь привести пример? Пожалуйста.

Sigorma
Не помог

dmmd
Эмоциональный пост, сначала благодарите, потом гоните, потом критикуете. Но главное зарегистрировались.. только чтобы я прочел это? Мне неважен формат критики, покажи свое портфолио "Супер программист" что бы я знал с кем имею честь беседовать. Нет портфолио - в моих глазах человек без профиля.
 
nemo
Пост не для тебя, а для таких же, как я.
Воспользуйся гуглом, найдешь мое портфолио моментально.

Для оценки твоих способностей к программированию не нужно даже иметь портфолио. Овладей русским языком (кстати, последний коммент отличается в лучшую сторону), затем займись тем, к чему есть способности.
 
dmmd
Здравствуйте, Сергей!
Извините, что сразу не узнали.
А у нас вот тут... php-клуб. Программируем потихоньку...
 
Adelf как ты искал, интересно? Я не Сергей.
И это все оффтопик, конечно.
 
Автор оригинала: nemo
prolis
не получается, как правильней будет написать можешь привести пример? Пожалуйста.
include("scriptname.php");
-где scriptname.php - название того твоего файла, где:
<?php
// если путь до папки куда скидывается файл есть
 
dmmd


Дорогой nemo.
Я читаю этот форум во время обеда, именно этот раздел, уже несколько лет. Именно ради таких вопросов, как твои. Особенно удачные темы я показываю коллегам, наслаждаемся вместе. Твое появление на форуме украсило его, я с нетерпением жду твоих новых постов, рассылаю цитаты друзьям.
Спасибо тебе.

Я не регистрировался, просто читал. Но больше не могу. ВОН ИЗ ПРОФЕССИИ! Такие, как ты - позорят не только php, но и вообще веб-программирование. Ты никогда не заработаешь на этом, никогда не научишься, не стоит.
Я не спрашиваю про ВУЗ, но школу ты как, успел закончить? Там ты тоже учился, спрашивая соседей по классу, вместо того, чтоб читать учебники?

PS. Название сайта, который ты "пишешь", особенно иронично выглядит.
Я идиот, убейте меня кто-нибудь.
Спасибо, что называется made my day! :-D
 
фух разобрался, делал какраз через отдельный includ как посоветовал prolis, после submit
проблему сразу неувидел в пути и долго думал
разобрался.
 
Как говорит фанат, у троллей традиционное пред-весеннее обострение
 
Сверху