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

Форум PHP

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

 

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

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

тема: Загрузка файла
 
 автор: SnooPI   (10.12.2007 в 19:32)   письмо автору
 
 

Возникла проблема в скрипте загрузки файла на сервер...
Вообщем вот скрипт:

<?php

    
if(!$_SESSION['fname'])
    {
        echo 
"Прежде чем загружать файлы, вам необходимо пройти <a href='register.php'>регистрацию</a>";
    }
    else
    {
        
$max_size            *1024 1024;
        
$valid_types        = array("3gp","mp4""gif""wav""mid""avi""jpg""mp3""amr""mmf");
        
$date                 date("d-m-y"time());
        
$dir                "./base/".$date."/";

        if(
$_POST['sub'])
        {
            if(!
$_POST['nickname'] || !$_POST['info'])
            {
                echo 
'Заполните все поля';
                include(
'footer.php');
                exit();
            }
            else
            if(
$_POST['folder'] == '0')
            {
                echo 
'Выберите категорию';
                include(
'footer.php');
                exit();
            }
            else
            {
                
$filename    $_FILES['userfile']['tmp_name'];
                
$name        $_FILES['userfile']['name'];
                
$ext substr($_FILES['userfile']['name'], strrpos($_FILES['userfile']['name'], "."));
                if(
filesize($filename) > $max_size)
                {
                    echo 
'<span style="color:red; font-weight: bold">Слишком большой файл</span>';
                }
                else
                if(!
in_array($ext$valid_types))
                {
                    echo 
'<span style="color:red; font-weight: bold">Неверный формат файла...</span>';
                }
                else
                {
                    
mkdir($dir0777);

                    
$num 1;
                    while(
file_exists($dir.$name))
                    {
                        ++
$num;
                        
$file_name $num.$name;
                        
$name $file_name;
                    }

                    if(
copy($filename$dir.$name))
                    {
                        
$_POST['folder'] = intval($_POST['folder']);
                        if (!
get_magic_quotes_gpc())
                        {
                             
$_POST['nickname']    = mysql_escape_string($_POST['nickname']);
                             
$_POST['info']        = mysql_escape_string($_POST['info']);
                             
$name                mysql_escape_string($name);
                        }

                        
$query "INSERT INTO `files` VALUES(NULL, '".$_POST['folder']."', '".$name."', '".filesize($filename)."', '".$_POST['info']."', '' ,'".$_POST['nickname']."', '".date("d-m-y"time())."' , '".$_SERVER['REMOTE_ADDR']."')";
                        if(
mysql_query($query))
                        {
                            echo 
"Файл успешно загружен";
                            echo 
"<HTML><HEAD><META HTTP-EQUIV='Refresh' CONTENT='1; URL=index.php?cat=".$_POST['folder']."'></HEAD></HTML>";
                        }
                        else
                        {
                             exit(
"Ошибка при добавлении файла- ".mysql_error());
                        }
                    }
                    else
                    {
                        echo 
'<span style="color:red; font-weight: bold">Ошибка....</span>';
                    }
                }
            }
        }
?>
<br />
<br />
<form enctype="multipart/form-data" method="post"><b>Форма загрузки:</b><br />
<span style="color:red; font-weight: bold">*</span> Описание:<br/>
<textarea name="info" maxlength="300"></textarea><br/>
<span style="color:red; font-weight: bold">*</span> Ваше имя (ник):<br/>

<input type="text" name="nickname" value="<?php echo $_SESSION['fname']; ?>" /><br/>
<span style="color:red; font-weight: bold">*</span>Раздел:<br/>
<select name="folder">
<option value="0">Выбрать...</option>';
<?php
        $query 
"SELECT * FROM `cat` ORDER BY `id` DESC";
        
$result mysql_query($query);
        for(
$i 0$i mysql_num_rows($result); $i++)
        {
            
$row        mysql_fetch_array($result);
            echo 
"<option value=".$row['id'].">".$row['cat']."</option>";
        }
        echo 
"</select><br />";
?>
<span style="color:red; font-weight: bold">*</span> Файл (не более 4 мб):<br/>
<input type="file" name="userfile" /><br/>
<input type="submit" name="sub" value="Загрузить" />
</form>
<?php
    
}
?>


Ничего в скрипте сверхестественного нету....
Возвращает false функции copy...
Не понятно почему, но картинки загружает нормально, а вот мп3 файлы не хочет....

   
 
 автор: sim5   (10.12.2007 в 19:42)   письмо автору
 
   для: SnooPI   (10.12.2007 в 19:32)
 

Потому, что в php.ini установлено:
upload_max_filesize = 2M

   
 
 автор: SnooPI   (10.12.2007 в 22:07)   письмо автору
 
   для: sim5   (10.12.2007 в 19:42)
 

Добавил поле
<input type="hidden" name="MAX_FILE_SIZE" value="4000000">

Все равно выводит ошибку...
Может еще в скрипте что-то подправить надо?

   
 
 автор: Trianon   (10.12.2007 в 22:11)   письмо автору
 
   для: SnooPI   (10.12.2007 в 22:07)
 

Эту настройку нужно править в файле php.ini

   
 
 автор: Unkind   (10.12.2007 в 23:12)   письмо автору
 
   для: Trianon   (10.12.2007 в 22:11)
 

В PHP <= 4.2.3 был шанс править эту опцию и через .htaccess/ini_set() :)

   
 
 автор: Trianon   (10.12.2007 в 23:14)   письмо автору
 
   для: Unkind   (10.12.2007 в 23:12)
 

А позже дыру прикрыли.
Всяко это настройка администратора хостинга, а не владельца эккаунта.

   
 
 автор: Unkind   (10.12.2007 в 23:37)   письмо автору
 
   для: Trianon   (10.12.2007 в 23:14)
 

А я и не сомневался.

   
Rambler's Top100
вверх

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