1. Гость, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

Загрузка файлов

Тема в разделе 'PHP', создана пользователем diavolada, 27 окт 2011.

  1. TopicStarter Overlay

    diavolada Пользователи

    Сообщения:
    3
    Лайки:
    0
    Репутация:
    0
    Помогите пожалуйста сделать скрипт на загрузку файлов на сайт. Ну к примеру загружаю файл на сайт после этого мне отображается что файл загрузился, название файла и вес. Что то наподобее mail когда письмо пишешь. Заранее спасибо.
  2. roslimberg Пользователи

    Сообщения:
    24
    Лайки:
    8
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    kDesign
    щас все будет
  3. roslimberg Пользователи

    Сообщения:
    24
    Лайки:
    8
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    kDesign
    Шаг 1.

    Создаем файл формата .html
    имя_файла.html
    Прописываем там:

    HTML:
    <form ENCTYPE='multipart/form-data' action='load.php' method='post'>
    <input TYPE='hidden' name='MAX_FILE_SIZE' value='500000000'>
    Добавьте файл.
    <br>Выбрать файл, размер <b>не более 500 мб</b>.
    <br><input class='dats' type='file' name='file_name' size='20'> 
    <input type='submit' name='add' value='Добавить'>
    </form>
    
    где

    Код:
    action='load.php'
    указывается название/адрес скрипта

    Код:
    value='500000000'
    максимальный вес файла, 500000000=500мб



    Шаг 2.

    Создаем файл формата .php
    load.php

    Прописываем там:

    PHP:

    <?php 
    //
    print"
    <form ENCTYPE='multipart/form-data' action='load.php' method='post'>
    <input TYPE='hidden' name='MAX_FILE_SIZE' value='500000000'>
    Добавьте файл.
    <br>Выбрать файл, размер <b>не более 500 мб</b>.
    <br><input class='dats' type='file' name='file_name' size='20'> 
    <input type='submit' name='add' value='Добавить'>
    </form>"
    ;
    //
    if ($HTTP_POST_FILES[file_name][name]!=''){
    //
    if (preg_match("~[ˆa-zA-Z0-9_\.-]~",$HTTP_POST_FILES[file_name][name])){
    print 
    "<Error: Недопустим русские символы или пробелы"
    exit ; 
    }
    // 
    $tmp str_replace "\\""/"getcwd () )."/www";
    // 
    if (is_writeable($tmp)){
    //
    $fname $tmp.'/'.$HTTP_POST_FILES[file_name][name]; 
    //
    if (move_uploaded_file($HTTP_POST_FILES[file_name][tmp_name],$fname)){
    //
    $name_file $HTTP_POST_FILES[file_name][name];
    $type_file $HTTP_POST_FILES[file_name][type];
    $size_file $HTTP_POST_FILES[file_name][size];
    }
    }
    //
    else { print "Error: на папку $tmp нет доступа на запись"; exit ; }

    //
    if (strlen($name_file)=='0'){
    print 
    "Error: размер файла превышает допустимый 500000000 байт";
    exit ; 
    }
    //
    if (! file_exists ($fname)){
    print 
    "Error: файл $fname не найден";
    exit ; 
    }
    //
    if (! preg_match ("~www\/rar~",$type_file)){
    unlink ($fname); 
    print 
    "Error: Формат $type_file недопустим. Необходимо загружать только rar";
    exit ; 
    }
    //
    $time time ();
    //
    $fp = @fopen ($base_www"a+"); 
    //
    @fwrite ($fp,"$name_file::$size_file::$time::\256");
    //
    @fclose ($fp); 
    print 
    "Файл: $name_file ($size_file байт) успешно загружен в папку /www"
    }
    //
    else { print "Error: введите имя файла в форму"; }

    ?>
    где

    PHP:
    if (! preg_match ("~www\/rar~",$type_file))
    директория ~www, формат rar. При необходимости перечислbти форматы файлов сами.


    PHP:
    @fwrite ($fp,"$name_file::$size_file::$time::\256");
    Время хранения \256 часов.




    Вроде все)
    Скриптом пользовался давно, инфа вставлена из файла копипастом.
    Если что не правильно то прошу поправить.

    От +сега не откажусь :D

    Пользовался литературой с сайта omsk.ru
    Димка11 и pifagor нравится это.
  4. pifagor Пользователи

    Сообщения:
    57
    Лайки:
    16
    Пол:
    Мужской
    Репутация:
    0
    Могу тоже самую операцию выполнить с помощью php :lol:

    Все равно молот. Карамелос. :lol:
    Не откажусь сигой угостить. :D
  5. roslimberg Пользователи

    Сообщения:
    24
    Лайки:
    8
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    kDesign
    я не курю) только выпиваю :D
  6. Botchal MMORPG-DEVS.RU Пользователи

    Сообщения:
    182
    Лайки:
    66
    Репутация:
    0
    1) Не $HTTP_POST_FILES а $_FILES
    2) 37 строчка там где strlen - логическая ошибка, длинна имени файла после фильтрации никак не может указывать на размер файла
  7. pifagor Пользователи

    Сообщения:
    57
    Лайки:
    16
    Пол:
    Мужской
    Репутация:
    0
    вроде да...
    Я проверял.
Черновик сохранён Черновик удалён

Поделиться этой страницей