За последние 24 часа нас посетил 16821 программист и 1644 робота. Сейчас ищут 955 программистов ...

Мультиформа отправки файлов (проблема)

Тема в разделе "PHP для новичков", создана пользователем vl25, 10 мар 2010.

  1. vl25

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

    С нами с:
    30 янв 2009
    Сообщения:
    25
    Симпатии:
    0
    Добрый день "юнные" програмисты. 2 дня бъюсь над ошибкой:

    Код (Text):
    1. Warning: copy() [function.copy]: Filename cannot be empty in C:\home\test1.ru\www\upload.php on line 16
    Не получается заливать большие файлы. Маленькие он еще почему-то льет. Стоит денвер под виндосом. последний. в чем ошибка? я все уже перепробовал. :roll:

    Форма:
    PHP:
    1. <?
    2. $date_today = date("Y-m-d");
    3. if($_SESSION['name']) {
    4. $result = mysql_query("SELECT * FROM categories");
    5. $dwi = mysql_fetch_assoc($result);
    6. echo '<form action="/index.php?upload" enctype="multipart/form-data" method="post" >
    7. <div><input name="title" type="text" /></div>
    8. <div><input name="date" type="hidden" value="'.$date_today.'" /></div>
    9. <div><input name="author" type="hidden" value="'.$_SESSION['name'].'" /></div>
    10. <div><textarea name="text" id="text" rows="5" cols="40"></textarea>
    11. <input type="hidden" name="MAX_FILE_SIZE" value="300000" />
    12. <div>Файл&nbsp;<input type="file" name="filename[]" /></div>
    13. <div>Скриншот&nbsp;<input type="file" name="filename[]" /></div>
    14. <div><select name="category">';
    15. do {printf("<option value=\"%s\">%s</option>",$dwi['id'],$dwi['category']);} while($dwi = mysql_fetch_assoc($result));
    16. echo '</select></div>
    17. <input type="submit" name="submit" value="Отправить" />
    18. </form>';
    19.  
    20.  
    21.  
    22. //if($_POST['submit']) {
    23.  
    24.  
    25.  
    26. //} //Проверка на самбит
    27. } else {echo 'Добавлять файлы могут только пользователи сайта.';}
    28. ?>
    Обработчик

    PHP:
    1. <?php
    2. $title = $_POST['title'];
    3. $date = $_POST['date'];
    4. $author = $_POST['author'];
    5. $text = $_POST['text'];
    6. $category = $_POST['category'];
    7. $dir = $_SERVER['DOCUMENT_ROOT']."/upload/files/";
    8.  
    9.    if($_FILES["filename"]["name"][0] && $_FILES["filename"]["name"][1])
    10.      {
    11. // if($_FILES["filename"]["type"][0] == "application/x-tar" || $_FILES["filename"]["type"][0] == "application/x-zip-compressed")    {
    12.        if ($_FILES["filename"]["type"][1] == "image/jpeg")                                        {
    13.        if ($title) {
    14.        if ($text) {
    15.        if(copy($_FILES["filename"]["tmp_name"][0],
    16.      $_SERVER['DOCUMENT_ROOT']."/upload/files/".$_FILES["filename"]["name"][0]))
    17.    {
    18.  
    19.  
    20.      $filedir ="/upload/files/".$_FILES["filename"]["name"][0];
    21.      $filesize = $_FILES["filename"]["size"][0];
    22.  
    23.      $copy = copy($_FILES["filename"]["tmp_name"][1],$_SERVER['DOCUMENT_ROOT']."/upload/img/".$_FILES["filename"]["name"][1]);
    24.      $imgdir ="/upload/img/".$_FILES["filename"]["name"][1];
    25.      $res = mysql_query ("INSERT INTO news (title,text,date,author,category,filename,img,size) VALUES ('$title','$text','$date','$author','$category','$filedir','$imgdir','$filesize')");
    26.      echo 'Файл добавлен в базу!';
    27.  
    28.  
    29.  
    30.     }
    31.     }else {echo 'Вы не указали текст новости!';}
    32.     }else {echo 'Вы не указали заголовок!';}
    33.    } else {echo 'Запрещенный тип картинки!';}
    34.  //} else {echo 'Зпрещенный тип файла!';}
    35.     } else {echo 'Файл или изображение не были выбраны.';}
    36. ?>
     
  2. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
  3. vl25

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

    С нами с:
    30 янв 2009
    Сообщения:
    25
    Симпатии:
    0
    Код (Text):
    1.          if($_FILES["filename"]["tmp_name"][0]) {$tmp = $_FILES["filename"]["tmp_name"][0];} else {echo $_FILES["filename"]["error"][0] ;}
    2.        if(copy($tmp,
    3.      $_SERVER['DOCUMENT_ROOT']."/upload/files/".$_FILES["filename"]["name"][0]))
    ответ просто цифра 2

    если я прально понял то:

    Код (Text):
    1. Value: 2; The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.
    строчка из php.ini
    Код (Text):
    1. upload_max_filesize = 40M
    лью файл 800 кб.
     
  4. vl25

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

    С нами с:
    30 янв 2009
    Сообщения:
    25
    Симпатии:
    0
    ахаха, черт, вот я дурак:) нашел ошибку:
    снес просто строку
    Код (Text):
    1. <input type="hidden" name="MAX_FILE_SIZE" value="3000000" />
    тему можно закрыть!
     
  5. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    я ж тебе ссылку дал, специально

    UPLOAD_ERR_FORM_SIZE

    Value: 2; The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.


    там все РАСПИСАНО. все, что надо, ПРОЧИТАТЬ.