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

Форум PHP

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

 

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

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

тема: не загружается файл
 
 автор: Василий   (03.01.2012 в 23:19)   письмо автору
 
 

В первом коде - картинка грузится в папку img/logo_pu, а во втором - нет.
Вопрос - где ошибка?
<?php 
/**  
 * Function of uploaded of a file   
 * Функция загрузки файла (аплоадер)  
 * @param  int    $max_file_size    максимальный размер файла в килобайтах  
 * @param  array  $valid_extensions массив допустимых расширений  
 * @param  string $upload_dir       директория загрузки  
 * @return array                    сообщение о ходе выполнения  
 *  
 * @author IT studio IRBIS-team (www.irbis-team.com)  
 * @copyright © 2009 IRBIS-team   
 */  
    
function uploadHandle($max_file_size 100$valid_extensions = array(), $upload_dir '.')  
    {  
      
        
$error null;  
        
$info  null;  
        
$max_file_size *= 1024;  

        if (
$_FILES['userfile']['error'] === UPLOAD_ERR_OK)  
        {  
            
// проверяем расширение файла  
            
$file_extension pathinfo($_FILES['userfile']['name'], PATHINFO_EXTENSION);  
            if (
in_array($file_extension$valid_extensions))  
            {  
                
// проверяем размер файла  
                
if ($_FILES['userfile']['size'] < $max_file_size)  
                {  
                
$destination ="img/logo_pu/" $_FILES['userfile']['name']; 
      
                    if (
move_uploaded_file($_FILES['userfile']['tmp_name'], $destination))  
                        
$info 'Файл успешно загружен';  
                    else  
                        
$error 'Не удалось загрузить файл';  
                }   
                else  
                    
$error 'Размер файла больше допустимого';  
            }   
            else  
                
$error 'У файла недопустимое расширение';  
        }   
        else  
        {  
            
// массив ошибок  
            
$error_values = array( 

                
UPLOAD_ERR_INI_SIZE   => 
'Размер файла больше разрешенного директивой upload_max_filesize в php.ini',  
                
UPLOAD_ERR_FORM_SIZE  =>
 
'Размер файла превышает указанное значение в MAX_FILE_SIZE',                            
                
UPLOAD_ERR_PARTIAL    => 'Файл был загружен только частично',   
                
UPLOAD_ERR_NO_FILE    => 'Не был выбран файл для загрузки',   
                
UPLOAD_ERR_NO_TMP_DIR => 'Не найдена папка для временных файлов',   
                
UPLOAD_ERR_CANT_WRITE => 'Ошибка записи файла на диск' 

                                  
);  
      
            
$error_code $_FILES['userfile']['error'];  
      
            if (!empty(
$error_values[$error_code]))  
                
$error $error_values[$error_code];  
            else  
                
$error 'Случилось что-то непонятное';  
        }  
      
        return array(
'info' => $info'error' => $error);  
    }  
      
/////////////////////////////////////////////////////////////////////      
    
$extensions = array('jpg''jpeg''png''gif');  
    
$upload_dir 'images';  
      
    
// Запускаем функцию  
    
if(!empty($_POST['upload_submit'])) 
    {      
        
$message uploadHandle(200$extensions$upload_dir);  
    
        
// Выводим сообщение  
        
echo $message['error'] ? $message['error'] : $message['info'];  
    } 
?>  

<form action="" method="post" enctype="multipart/form-data">  
    <input type="radio" name="logo" value="old"> оставить старый логотип<br>
    <input type="radio" name="logo" value="new"> загрузить новый<br>
    <input type="radio" name="logo" value="no_im"> нет логотипа  

    <input type="file" name="userfile" />  
    <input type="submit" value="Закачать" name="upload_submit" />  
</form>




<?php 


/**  
 * Function of uploaded of a file   
 * Функция загрузки файла (аплоадер)  
 * @param  int    $max_file_size    максимальный размер файла в килобайтах  
 * @param  array  $valid_extensions массив допустимых расширений  
 * @param  string $upload_dir       директория загрузки  
 * @return array                    сообщение о ходе выполнения  
 *  
 * @author IT studio IRBIS-team (www.irbis-team.com)  
 * @copyright © 2009 IRBIS-team   
 */  
    
function uploadHandle($max_file_size 100$valid_extensions = array(), $upload_dir '.')  
    {  
      
        
$error null;  
        
$info  null;  
        
$max_file_size *= 1024;  

        if (
$_FILES['userfile']['error'] === UPLOAD_ERR_OK)  
        {  
            
// проверяем расширение файла  
            
$file_extension pathinfo($_FILES['userfile']['name'], PATHINFO_EXTENSION);  
            if (
in_array($file_extension$valid_extensions))  
            {  
                
// проверяем размер файла  
                
if ($_FILES['userfile']['size'] < $max_file_size)  
                {  
                
$destination ="img/logo_pu/" $_FILES['userfile']['name']; 
      
                    if (
move_uploaded_file($_FILES['userfile']['tmp_name'], $destination))  
                        
$info 'Файл успешно загружен';  
                    else  
                        
$error 'Не удалось загрузить файл';  
                }   
                else  
                    
$error 'Размер файла больше допустимого';  
            }   
            else  
                
$error 'У файла недопустимое расширение';  
        }   
        else  
        {  
            
// массив ошибок  
            
$error_values = array( 

                
UPLOAD_ERR_INI_SIZE   =>
 
'Размер файла больше разрешенного директивой upload_max_filesize в php.ini',  
                
UPLOAD_ERR_FORM_SIZE  =>
 
'Размер файла превышает указанное значение в MAX_FILE_SIZE',                            
                
UPLOAD_ERR_PARTIAL    => 'Файл был загружен только частично',   
                
UPLOAD_ERR_NO_FILE    => 'Не был выбран файл для загрузки',   
                
UPLOAD_ERR_NO_TMP_DIR => 'Не найдена папка для временных файлов',   
                
UPLOAD_ERR_CANT_WRITE => 'Ошибка записи файла на диск' 

                                  
);  
      
            
$error_code $_FILES['userfile']['error'];  
      
            if (!empty(
$error_values[$error_code]))  
                
$error $error_values[$error_code];  
            else  
                
$error 'Случилось что-то непонятное';  
        }  
      
        return array(
'info' => $info'error' => $error);  
    }  
      
/////////////////////////////////////////////////////////////////////      
    
$extensions = array('jpg''jpeg''png''gif');  
    
$upload_dir 'images';  
      
    
// Запускаем функцию  
    
if(!empty($_POST['upload_submit'])) 
    {      
        
$message uploadHandle(200$extensions$upload_dir);  
    
        
// Выводим сообщение  
        
echo $message['error'] ? $message['error'] : $message['info'];  
    } 
?>  

<form name="add" method='post' action='pu_add.php' enctype="multipart/form-data">
<table>
 <tr>
  <td width="200" valign="top"><b>Название организации:</b></td>
  <td width="550" align="left" style='background-color:#f0f0f0'>
  <input value= "<?php echo $_GET['title']; ?>" type="text" name="title">
  </td>
 </tr>


 <tr>
 
<?php  
if (!empty($_GET['logo'])) {
printf ("<td><input type='radio' name='userfile' value='old'> оставить старый логотип<br></td> 
  <td><img src='%s'></td>

</tr><tr> 
  <td><input type='radio' name='userfile' value='new'> загрузить новый<br> </td> 
  <td> <input type='file' name='filename'></td> 
</tr><tr>
 <td><input type='radio' name='userfile' value='no_im'> нет логотипа</td>
<td></td>"
,  $_GET["logo"]);}?>

<?php  
if (empty($_GET['logo'])) {
printf ("<td><input type='radio' name='userfile' value='new'> загрузить логотип<br> </td> 
  <td> <input type='file' name='filename'></td> 
</tr><tr>
 <td><input type='radio' name='userfile' value='no_im'> нет логотипа</td>
<td></td>"
,  $_GET["logo"]);}?>
</tr> 
 
 
</table>
<input name="id_pu" type="hidden" value="<?php echo $_GET['id_pu']; ?>">
     <label>
     <input type="submit" name="submit" id="submit" value="Сохранить изменения">
</label>

</form>

   
 
 автор: Slo_Nik   (03.01.2012 в 23:59)   письмо автору
 
   для: Василий   (03.01.2012 в 23:19)
 

есть такая полезная функция как eror_reporting()
вот при помощи неё выставляете уровень ошибок на полную, после неё выводите дамп массива $_FILES и смотрите/сверяете/ проверяете все данные....
ошибка у Вас в имени поля для выбора файла.... это подсказка... ищите ошибку

p.s перестаньте тупо/слепо копироват код....

   
 
 автор: Василий   (04.01.2012 в 00:31)   письмо автору
 
   для: Slo_Nik   (03.01.2012 в 23:59)
 

// Сообщать обо всех ошибках PHP (использовать битовое 63 в PHP 3)
error_reporting (E_ALL);

ни одной ошибки!

   
 
 автор: Василий   (04.01.2012 в 00:35)   письмо автору
 
   для: Василий   (04.01.2012 в 00:31)
 

все одинаковое, только
в 1-м случае [tmp_name] => /tmp/phpHmvJzw
во 2-м - [tmp_name] => /tmp/phpZ5palh

   
 
 автор: Slo_Nik   (04.01.2012 в 00:40)   письмо автору
 
   для: Василий   (04.01.2012 в 00:35)
 

>ошибка у Вас в имени поля для выбора файла.... это подсказка... ищите ошибку
не там ищите, ищите дальше....

   
 
 автор: Василий   (04.01.2012 в 00:41)   письмо автору
 
   для: Василий   (04.01.2012 в 00:35)
 

ошибка у Вас в имени поля для выбора файла.... это подсказка... ищите ошибку

как может быть ошибка если во всех двух файлах одинаковый путь:
                $destination ="img/logo_pu/" . $_FILES['userfile']['name']; 

   
 
 автор: Slo_Nik   (04.01.2012 в 00:45)   письмо автору
 
   для: Василий   (04.01.2012 в 00:41)
 

Да при чём тут путь?
Вы когда читаете, что Вам пишут, Вы всё понимаете?
Вы понимаете, что значит "ошибка в имени поля для выбора файла"?
Какие имена индексов в массиве $_FILES?

   
 
 автор: Василий   (04.01.2012 в 00:47)   письмо автору
 
   для: Slo_Nik   (04.01.2012 в 00:45)
 

вот имена:
Array
(
    [userfile] => Array
        (
            [name] => Безымянный.png
            [type] => image/png
            [tmp_name] => /tmp/phpHmvJzw
            [error] => 0
            [size] => 69972
        )

)

   
 
 автор: Slo_Nik   (04.01.2012 в 00:54)   письмо автору
 
   для: Василий   (04.01.2012 в 00:47)
 

это в обоих скриптах показывает?
во втором скрипте у Вас имя поля "filename"

   
 
 автор: Василий   (04.01.2012 в 01:02)   письмо автору
 
   для: Slo_Nik   (04.01.2012 в 00:54)
 

1 вариант
Array
(
    [userfile] => Array
        (
            [name] => yutex.png
            [type] => image/png
            [tmp_name] => /tmp/phpZnY9Gy
            [error] => 0
            [size] => 92734
        )

)



2 вариант
Array
(
    [userfile] => Array
        (
            [name] => yutex.png
            [type] => image/png
            [tmp_name] => /tmp/phpAjJH0M
            [error] => 0
            [size] => 92734
        )

)


ОДно и тоже. Но второй вариант - файл падает в папку, в первм - нет

   
 
 автор: Василий   (04.01.2012 в 01:13)   письмо автору
 
   для: Василий   (04.01.2012 в 01:02)
 

во всех двух файлах используется
// Запускаем функцию
if(!empty($_POST['upload_submit']))

Но:

1 вариант имеет <input type="submit" value="Закачать" name="upload_submit" />

2 вариант - <input type="submit" name="submit" id="submit" value="Сохранить изменения">

Как привести к одному знаменателю?

   
 
 автор: Василий   (04.01.2012 в 01:18)   письмо автору
 
   для: Василий   (04.01.2012 в 01:13)
 

Вместо
input type="submit" name="submit" id="submit" value="Сохранить изменения">

Написал:

input type="submit" name="upload_submit" id="submit" value="Сохранить изменения">

и все равно безрезультатно

   
 
 автор: Василий   (04.01.2012 в 04:11)   письмо автору
 
   для: Василий   (04.01.2012 в 01:18)
 

Тему закрываем!

   
Rambler's Top100
вверх

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