За последние 24 часа нас посетили 57625 программистов и 1810 роботов. Сейчас ищут 1298 программистов ...

перезапись временного файла

Тема в разделе "PHP для новичков", создана пользователем franko, 4 янв 2012.

  1. franko

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

    С нами с:
    19 ноя 2010
    Сообщения:
    30
    Симпатии:
    1
    Друзья!
    В 4 утра!
    Пользователь корректирует свое название и загружает свой логотип.
    Код (Text):
    1. <?php
    2. /**  
    3.  * Function of uploaded of a file  
    4.  * Функция загрузки файла (аплоадер)  
    5.  * @param  int    $max_file_size    максимальный размер файла в килобайтах  
    6.  * @param  array  $valid_extensions массив допустимых расширений  
    7.  * @param  string $upload_dir       директория загрузки  
    8.  * @return array                    сообщение о ходе выполнения  
    9.  *  
    10.  * @author IT studio IRBIS-team (www.irbis-team.com)  
    11.  * @copyright © 2009 IRBIS-team  
    12.  */  
    13.     function uploadHandle($max_file_size = 100, $valid_extensions = array(), $upload_dir = '.')  
    14.     {  
    15.      
    16.         $error = null;  
    17.         $info  = null;  
    18.         $max_file_size *= 1024;  
    19.  
    20.         if ($_FILES['userfile']['error'] === UPLOAD_ERR_OK)  
    21.         {  
    22.             // проверяем расширение файла  
    23.             $file_extension = pathinfo($_FILES['userfile']['name'], PATHINFO_EXTENSION);  
    24.             if (in_array($file_extension, $valid_extensions))  
    25.             {  
    26.                 // проверяем размер файла  
    27.                 if ($_FILES['userfile']['size'] < $max_file_size)  
    28.                 {  
    29.                 $destination ="img/logo_pu/" . $_FILES['userfile']['name'];
    30.      
    31.                     if (move_uploaded_file($_FILES['userfile']['tmp_name'], $destination))  
    32.                         $info = 'Файл успешно загружен';  
    33.                     else  
    34.                         $error = 'Не удалось загрузить файл';  
    35.                 }  
    36.                 else  
    37.                     $error = 'Размер файла больше допустимого';  
    38.             }  
    39.             else  
    40.                 $error = 'У файла недопустимое расширение';  
    41.         }  
    42.         else  
    43.         {  
    44.             // массив ошибок  
    45.             $error_values = array(
    46.  
    47.                 UPLOAD_ERR_INI_SIZE   =>
    48.                 'Размер файла больше разрешенного директивой upload_max_filesize в php.ini',  
    49.                 UPLOAD_ERR_FORM_SIZE  =>
    50.                 'Размер файла превышает указанное значение в MAX_FILE_SIZE',                            
    51.                 UPLOAD_ERR_PARTIAL    => 'Файл был загружен только частично',  
    52.                 UPLOAD_ERR_NO_FILE    => 'Не был выбран файл для загрузки',  
    53.                 UPLOAD_ERR_NO_TMP_DIR => 'Не найдена папка для временных файлов',  
    54.                 UPLOAD_ERR_CANT_WRITE => 'Ошибка записи файла на диск'
    55.  
    56.                                   );  
    57.      
    58.             $error_code = $_FILES['userfile']['error'];  
    59.      
    60.             if (!empty($error_values[$error_code]))  
    61.                 $error = $error_values[$error_code];  
    62.             else  
    63.                 $error = 'Случилось что-то непонятное';  
    64.         }  
    65.      
    66.         return array('info' => $info, 'error' => $error);  
    67.     }  
    68.      
    69. /////////////////////////////////////////////////////////////////////      
    70.     $extensions = array('jpg', 'jpeg', 'png', 'gif');  
    71.     $upload_dir = 'images';  
    72.      
    73.     // Запускаем функцию  
    74.     if(!empty($_POST['upload_submit']))
    75.     {      
    76.         $message = uploadHandle(200, $extensions, $upload_dir);  
    77.    
    78.         // Выводим сообщение  
    79.         echo $message['error'] ? $message['error'] : $message['info'];  
    80.     }
    81. ?>  
    82.  
    83. <form name="add" method='post' action='pu_add.php' enctype="multipart/form-data">
    84. <table width="650" cellspacing="5" cellpadding="5">
    85.  <tr>
    86.   <td width="200" valign="top"><b>Название организации:</b></td>
    87.   <td width="550" align="left" style='background-color:#f0f0f0'>
    88.   <input value= "<?php echo $_GET['title']; ?>" type="text" name="title" size="80">
    89.   </td>
    90.  </tr>
    91.  <tr>
    92.    <td width="200" valign="top"><b>Logotip:</b></td>
    93.     <td><input type="file" name="logo" value="<?php echo $_GET['logo']; ?>">загрузить</td>
    94. </tr>
    95.  
    96.  
    97. </table>
    98. <input name="id_pu" type="hidden" value="<?php echo $_GET['id_pu']; ?>">
    99.    <br>
    100.    <center>
    101.      <label>
    102.      <input type="submit" value="Сохранить изменения" name="upload_submit" id="submit">
    103.     </label>
    104.    </center>
    105.  
    106. </form>
    107.  
    108. </td>
    109. </tr>
    110. </table>
    Код (Text):
    1. Array
    2. (
    3.     [logo] => Array
    4.         (
    5.             [name] => Яyutex.png
    6.             [type] => image/png
    7.             [tmp_name] => /tmp/phplPmhDQ
    8.             [error] => 0
    9.             [size] => 92734
    10.         )
    11. )
    В данном случае в БД в поле logo записывается содержимое временной папки /tmp/phplPmhDQ
    Содержимое папки logo на сервере пусто.
    Покажите ошибку
     
  2. franko

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

    С нами с:
    19 ноя 2010
    Сообщения:
    30
    Симпатии:
    1
    стоит привести файл pu_add.php
    Код (Text):
    1. if  (isset($_POST['logo']))          {$logo = $_POST['logo']; if ($logo == '') {unset ($logo);}}
    2.  
    3. if (isset($logo) {
    4. $result = mysql_query ("insert pu SET logo='$logo',
    Название организации меняется, а вот с логотипом проблемы