Скрипт заливки файла на сервер

Discussion in 'PHP' started by alpotemkin, 7 Sep 2010.

  1. alpotemkin

    alpotemkin Elder - Старейшина

    Joined:
    7 May 2008
    Messages:
    57
    Likes Received:
    1
    Reputations:
    0
    Доброго времени суток.

    Распишу по пунктам, для простоты:
    1. Есть скрипт, который заливает файл на сервер.
    2. Заливает нормально, но файлы оказываются битыми. Кроме текста.
    3. Пробовал другие, скрипты - все нормально, но не устраивает их функционал.
    4. Не предлагать:
    , ибо см. пункт 3.
    5. Я так понимаю, что ошибка в этих строчках:
    Code:
    $type = strtolower(substr($filename, 1+strrpos($filename,".")));
    $new_name = fopen("zayavka-$rand.$type", "w+");
    
    Вот сам скрипт:
    Code:
    <?php
    
    $file = $_FILES['file']['tmp_name'];
    $filename = $_FILES['file']['name'];
    if(!empty($file))
    {
      ini_set('memory_limit', '32M');
      $rand=date("d.m.Y-G.i.s");
      $maxsize = "1000000";
      $extentions = array( "zip", "rar","7z","jpg");
      $size = filesize ($_FILES['file']['tmp_name']);
      $type = strtolower(substr($filename, 1+strrpos($filename,".")));
      $new_name = fopen("zayavka-$rand.$type", "w+");
      if($size > $maxsize)
      { 
         echo "Файл больше 1 мб. Уменьшите размер вашего файла или загрузите другой. <br><a href='' onClick=window.close();>Вернуться назад</a>";
      } 
      elseif(!in_array($type,$extentions)) 
      { 
        echo ' <b>Файл имеет недопустимое расширение</b>. Допустимыми являются форматы "zip", "rar","7z","jpg".<br>';
      } 
      else 
      { 
        if (copy($file, "../zajvka/".$new_name))
          echo "<b>Заявка отправлена!</b><br> Вернуться на <a href='/'>сайт</a>";
        else echo "Файл НЕ был загружен.";
      }
    }
    
    ?>
    
    Тема закрыта - нашел ошибку.
    Кому интересно - строки должны быть такими:
    Code:
    $type = strtolower(substr($filename, 1+strrpos($filename,".")));
    $new_name = 'zayavka-'.$rand.'.'.$type;
    
     
    #1 alpotemkin, 7 Sep 2010
    Last edited: 7 Sep 2010