Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Скрипт загрузки файлов на сервер
 
 автор: YAN   (01.04.2006 в 16:46)   письмо автору
 
 

Создал скрипт загрузки файлов на сервер. Но одна ошибка. Скрипт не стирает. Но если кусок
<?php if(! isset($_GET['del'])) exit(); ... перенести выше, тогда будет стирать, но не будет записывать. Найдите ошибку.


<?if ($QUERY_STRING == ""){?>
<h2><p><b>Загрузка файлов <br><a href="/php/karzina" target="_blank"><font color="Green">karzina</font></a> </b></p></h2>
<form action="zagruzka.php?ok" method="post" enctype="multipart/form-data" ><input class=form type="file" name="filename"><br><input class=form type="submit" value="             Загрузить           "></form><br><a href="zagruzka.php?del"><font color="Red">Стереть все, что в папке!</font></a>
<?}?> 




<?php if(! isset($_GET['ok'])) exit(); 
   if(
$HTTP_POST_FILES["filename"]["size"] > 1024*10*1024)
   {
     echo (
"Размер файла превышает десять мегабайт");
     exit;
   }
   if(
copy($HTTP_POST_FILES["filename"]["tmp_name"],
     
"karzina/".$HTTP_POST_FILES["filename"]["name"]))
   {
     echo(
"Файл успешно загружен <br>");
     echo(
"Характеристики файла: <br>");
     echo(
"Имя файла: ");
     echo(
$HTTP_POST_FILES["filename"]["name"]);
     echo(
"<br>Размер файла в байтах: ");
     echo(
$HTTP_POST_FILES["filename"]["size"]);
     echo(
"<br>Каталог для загрузки: ");
     echo(
$HTTP_POST_FILES["filename"]["tmp_name"]);
     echo(
"<br>Тип файла: ");
     echo(
$HTTP_POST_FILES["filename"]["type"]);
   } else {
      echo(
"Ошибка загрузки файла");
   }
?>

<?php if(! isset($_GET['del'])) exit(); 
$dir_name "karzina"
$dir opendir($dir_name); 
while((
$file readdir($dir))) 

if(
is_file($dir_name."/".$file)) 

unlink($dir_name."/".$file); 
} } 
closedir($dir); 
echo 
'стерто'
?>

   
 
 автор: mtr   (01.04.2006 в 17:53)   письмо автору
 
   для: YAN   (01.04.2006 в 16:46)
 

?!?!!?!?!

   
 
 автор: Drago   (01.04.2006 в 18:12)   письмо автору
 
   для: YAN   (01.04.2006 в 16:46)
 

Когда вы загружаете файл, параметр "ок" существует, а параметр "del" - нет. В этом случае функция exit() выполняется после загрузки файла.
Когда вы удаляете, параметр "del" существует, а параметр "ок" - нет. В этом случае функция exit() выполняется до загрузки файла, то есть в начале скрипта. Тем самым, не давая выполнить удаление.

Сделайте вот так:

<?
if (empty ($_GET['action']))
{
?>
  <h2><p><b>Загрузка файлов <br><a href="/php/karzina" target="_blank"><font color="Green">karzina</font></a></b></p></h2>
  <form action="1.php?action=ok" method="post" enctype="multipart/form-data" ><input class=form type="file" name="filename"><br>
  <input class=form type="submit" value="             Загрузить           "></form><br>
  <a href="1.php?action=del"><font color="Red">Стереть все что в папке!</font></a>
<?php
}
else
{
  if (
$_GET['action'] == "ok")
  {
    if(
$HTTP_POST_FILES["filename"]["size"] > 1024*10*1024)
    {
      echo (
"Размер файла превышает десять мегабайт");
      exit;
    }
    if(
copy($HTTP_POST_FILES["filename"]["tmp_name"],
      
"php/karzina/".$HTTP_POST_FILES["filename"]["name"]))
    {
      echo(
"Файл успешно загружен <br>");
      echo(
"Характеристики файла: <br>");
      echo(
"Имя файла: ");
      echo(
$HTTP_POST_FILES["filename"]["name"]);
      echo(
"<br>Размер файла в байтах: ");
      echo(
$HTTP_POST_FILES["filename"]["size"]);
      echo(
"<br>Каталог для загрузки: ");
      echo(
$HTTP_POST_FILES["filename"]["tmp_name"]);
      echo(
"<br>Тип файла: ");
      echo(
$HTTP_POST_FILES["filename"]["type"]);
    } else {
       echo(
"Ошибка загрузки файла");
    }
  }

    if (
$_GET['action'] == "del")
    {
      
$dir_name "php/karzina";
      
$dir opendir($dir_name);
      while((
$file readdir($dir)))
      {
      if(
is_file($dir_name."/".$file))
      {
      
unlink($dir_name."/".$file);
      } }
      
closedir($dir);
      echo 
'стерто';
    }
}
?>

   
 
 автор: YAN   (02.04.2006 в 17:11)   письмо автору
 
   для: Drago   (01.04.2006 в 18:12)
 

Спасибо, работает!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования