За последние 24 часа нас посетили 55038 программистов и 1749 роботов. Сейчас ищут 820 программистов ...

не работает библиотека загрузки файлов

Тема в разделе "PHP для новичков", создана пользователем foozzi, 11 ноя 2011.

  1. foozzi

    foozzi Активный пользователь

    С нами с:
    11 ноя 2011
    Сообщения:
    20
    Симпатии:
    0
    В общем 4 день подряд решаю траблу с со своей библиотекой, писал еще на одном известном форуме о php (русском) там то же не знают что такое, ии еще на нескольких форумах вообще молчат...
    при загрузке файла видел индикатор "Загрузка" и проценты прогресса в браузере (mozilla) когда доходит до 100 выдает белую страницу, как видите дебаг стоит но ошибок не выводит...
    вот код формы:

    HTML:
    1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    2.         <link rel="stylesheet" type="text/css" media="all" href="style.css">
    3.     </head>
    4.     <body>
    5.         <table width="100%" height="100%"><tr valign="center"><td align="center" nowrap><div id="upload">
    6. <?php
    7.  
    8. ini_set('display_errors',1);
    9. error_reporting(E_ALL);
    10.  
    11.                 echo 'Выберите файл | Максимальный размер 10 MB | Запрещенно заливать исполняемые файлы<br><br>';
    12.                 echo '<form enctype="multipart/form-data" action="lib/lib.upload.php" method="post">';
    13.                echo '<input type="file" name="filename" size="45">';
    14.                 echo '<input type="submit" value=" Грузить! " name="upload">';
    15.                 echo '</form>';
    16. ?>
    17. </body>
    18. </html>
    19.  
    и код библиотеки:

    PHP:
    1. <?php
    2. error_reporting(E_ALL | E_STRICT);
    3. ini_set("display_errors", True);
    4.      $upload_dir = '/uploads';
    5.      $upload_path = dirname (__FILE__).$upload_dir;
    6.      $upload_filename = basename($_FILES["filename"]["name"]);
    7.      $upload_link = "http://".$_SERVER["HTTP_HOST"].dirname ($_SERVER ["PHP_SELF"]).$upload_dir.$upload_filename;
    8.    
    9. function upload_file($max_size=3145728) {
    10.     global $upload_path, $upload_filename, $upload_dir, $upload_link;
    11.  
    12.     if ($_FILES)
    13.     {
    14.         switch ($_FILES['filename']['type'])
    15.         {
    16.             case 'image/jpeg':  $ext='jpg'; break;
    17.             case 'image/pjpeg': $ext='jpg'; break;
    18.             case 'image/png':   $ext='png'; break;
    19.             case 'application/pdf': $ext='pdf'; break;
    20.             case 'application/x-bzip2': $ext='bz2'; break;
    21.             case 'application/x-gzip':  $ext='gz'; break;
    22.             case 'application/x-tar':   $ext='tar gz'; break;
    23.             case 'application/x-troff-man': $ext='man'; break;
    24.             case 'application/zip': $ext='zip'; break;
    25.          case 'audio/mpeg': $ext='mp3'; break;
    26.        
    27.             default:            $ext='';
    28.         }  
    29.        
    30.         if ($ext == true && $_FILES['filename']['size'] <= $max_size)
    31.         {
    32.             /*$file=time().'.'.$ext;*/
    33.       $m=move_uploaded_file($_FILES['filename']['tmp_name'], /*TE_DIR.'/upload/'*/$upload_dir.$upload_filename);
    34.            
    35.             if ($m){
    36.       $mes='Файл загружен.';
    37.       echo "Линки:<br>";
    38.      echo "<input type='text' size=80 onclick='this.select()' value='".$upload_link."'><br><br>";
    39.      echo "HTML Линк:<br>";
    40.      echo "<input type='text' size=80 onclick='this.select()' value=\"<a href='".$upload_link."'>".$upload_link."</a>\"><br><br>";
    41.      echo "BB-Code Линк:<br>";
    42.      echo "<input type='text' size=80 onclick='this.select()' value='[url]".$upload_link."[/url]'><br><br>";
    43.      echo "<a href='?".md5(microtime())."'>Загрузить другой файл</a>"; }
    44.      }
    45.      elseif(!$m) {
    46.  
    47.             $mes='Ошибка. Возможно не хватает прав доступа.';
    48.       }
    49.         else {
    50.  
    51.         $mes='Ошибка. Тип файла не поддерживается или его размер больше допустимого.';
    52.      }
    53.     return $mes;
    54.    }
    55.    }
    56. ?>  
    57.  
     
  2. Mamont

    Mamont Активный пользователь

    С нами с:
    5 дек 2010
    Сообщения:
    183
    Симпатии:
    0
    1. Ошибок не выдает, потому что нет вызова основной функции.
    2. Нет проверки состояния загруженного файла $_FILES['filename']['error']
     
  3. foozzi

    foozzi Активный пользователь

    С нами с:
    11 ноя 2011
    Сообщения:
    20
    Симпатии:
    0
    решил вот так:
    PHP:
    1. <?php
    2. error_reporting(E_ALL | E_STRICT);
    3. ini_set("display_errors", True);
    4.      $upload_dir = '/uploads/';
    5.      $upload_path = dirname (__FILE__).$upload_dir;
    6.      $upload_filename = basename($_FILES["filename"]["name"]);
    7.      $upload_link = "http://".$_SERVER["HTTP_HOST"].dirname ($_SERVER ["PHP_SELF"]).$upload_dir.$upload_filename;
    8.      $m=move_uploaded_file($_FILES['filename']['tmp_name'], /*TE_DIR.'/upload/'*/$upload_path.$upload_filename);
    9.    
    10. function upload_file($max_size=3145728)
    11. {
    12.    
    13.     global $upload_path, $upload_filename, $upload_dir, $upload_link, $m;
    14.  
    15. if ($_FILES)
    16.  {
    17.         switch ($_FILES['filename']['type']) // Проверка типа файла
    18.       {
    19.             case 'image/jpeg':        $ext='jpg'; break;
    20.             case 'image/pjpeg':       $ext='jpg'; break;
    21.             case 'image/png':            $ext='png'; break;
    22.             case 'application/pdf':    $ext='pdf'; break;
    23.             case 'application/x-bzip2':$ext='bz2'; break;
    24.             case 'application/x-gzip':  $ext='gz';  break;
    25.             case 'application/x-tar':   $ext='tar gz'; break;
    26.             case 'application/x-troff-man':$ext='man'; break;
    27.             case 'application/zip':    $ext='zip'; break;
    28.          case 'audio/mpeg':       $ext='mp3'; break;
    29.        
    30.             default:            $ext='';
    31.         }  
    32.        
    33. if ($ext == true && $_FILES['filename']['size'] <= $max_size)
    34.    {
    35.            
    36. if ($m)
    37.     {
    38.       echo "Файл загружен.";
    39.       echo "Линки:<br>";
    40.      echo "<input type='text' size=80 onclick='this.select()' value='".$upload_link."'><br><br>";
    41.      echo "HTML Линк:<br>";
    42.      echo "<input type='text' size=80 onclick='this.select()' value=\"<a href='".$upload_link."'>".$upload_link."</a>\"><br><br>";
    43.      echo "BB-Code Линк:<br>";
    44.      echo "<input type='text' size=80 onclick='this.select()' value='[url]".$upload_link."[/url]'><br><br>";
    45.      echo "<a href='../index.php?".md5(microtime())."'>Загрузить другой файл</a>";
    46.     }
    47.     else
    48.       {
    49.             echo "Ошибка. Возможно не хватает прав доступа.";
    50.       }
    51.     }
    52.   else
    53.       {
    54.                 echo "Не разрешенный тип файла или слишком большой размер файла";
    55.        }
    56. /*print_r($mes);*/
    57.  }
    58. }
    59.  
    60. upload_file();
    61.  
    62. ?>  
    63.