Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
 Аватар для lookmy
60 / 55 / 20
Регистрация: 01.04.2013
Сообщений: 551

Загрузка файла на сервак

02.04.2013, 17:55. Показов 649. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сразу скажу что скрипт работает нормально , но всё таки хотелось услыхать от спецов , на сколько он надёжный и что можно переделать ? если это нужно .
Опишу :
1 - Скрипт создает папку по дате и грузит туда .
2 - Разрешается грузить только RAR расширение .
3 - Загрузка не больше 50 мег.
Хочу прикрутить небольшой upload , по обмену файлами .
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
if ($_POST['send']) {
    $error_file = array();
    $dir = "upload/" . date('Y/m/d');
    $valid_types = array("rar");
    $max_upload_size = 1024 * 50 * 1024;
 
    if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
        $filename = $_FILES['userfile']['tmp_name'];
        $ext = substr($_FILES['userfile']['name'], 1 + strrpos($_FILES['userfile']['name'],
            "."));
 
        if (filesize($filename) > $max_upload_size) {
            $error_file[] = "Превышение , более 50 МБ .";
        } elseif (!in_array($ext, $valid_types)) {
            $error_file[] = "Можно загружать только файлы с расширением RAR .";
        } else {
            @mkdir($dir, 0, true);
            $uploadfile = "./" . $dir . "/" . $_FILES['userfile']['name'];
 
            if (@move_uploaded_file($filename, $uploadfile)) {
                echo 'Файл загружен';
            } else {
                echo 'ERORR , upload !';
            }
 
        }
    } else {
        $error_file[] = "Не предвиденные ошибки .";
    }
}
По моим беглым тестам , работает нормально , но всё равно хочу спросить специалистов , может есть какие недочёты , чтобы исправить сразу .
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.04.2013, 17:55
Ответы с готовыми решениями:

Виснет постоянно сеть, часто проподает сервачный диск, иногда даже пропинговать сервак не получается(сервак WS2003, 25 компов)
виснет постоянно сеть, часто проподает сервачный диск, иногда даже пропинговать сервак не получается(сервак WS2003, 25 компов), на вирусы...

Ошибка при загрузке файла на сервак
Возникла небольшая проблема, нужно загрузить файл на сервак, через браузер все отлично отсылается и получаю ответ а когда пытаюсь...

Как реализовать закачку файла на сервак?
Мне сказали, что на ASP'е можно как-то реализовать закачку файлов на сервак стандартными методами. Если кто знает подскажите пожалуйста. ...

6
-1 / 2 / 1
Регистрация: 03.04.2012
Сообщений: 53
11.04.2013, 18:26
сомнения насчет date('Y/m/d') на мой взгляд лучше сделать через ('Y-m-d')
И наверно, было бы неплохо логировать действия в б.д., чтоб если кто то захочет устроить DDos || dos:
брать айпи или удаленный и писать в бд
ну а при закачке сразу проверять, откуда заливается

Добавлено через 1 минуту
Цитата Сообщение от teremok_teremok Посмотреть сообщение
сомнения насчет date('Y/m/d') на мой взгляд лучше сделать через ('Y-m-d')
или ты хочешь сделать чтоб была папка года, в ней папки месяцов, а в них - дней?

Добавлено через 1 минуту
и еще. Файл может иметь любое расширение, а вот содержимое может отличаться и вообще не быть архивом
0
Сексуальный
 Аватар для mialpet
84 / 49 / 1
Регистрация: 02.04.2013
Сообщений: 443
11.04.2013, 21:33
$_FILES['uploadfile']['size'], $_FILES['uploadfile']['type']
Чем не понравились?
Цитата Сообщение от lookmy Посмотреть сообщение
Не предвиденные ошибки .
Непредвиденные ошибки.
$_FILES['uploadfile']['error'] еще есть.

ИМХО если в базу имени не пишешь и файлами сам пользоваться не будешь, то и проверять сильно особо незачем, а так проверку файлам делают в основном выполняя над ними операции которые возможны только с их типами т.к. как верно заметили выше проверка на расширение бесполезна для безопасности.
0
 Аватар для lookmy
60 / 55 / 20
Регистрация: 01.04.2013
Сообщений: 551
11.04.2013, 23:39  [ТС]
Данный скрипт я взял в интернете , только дописал кое что под себя .
Цитата Сообщение от teremok_teremok Посмотреть сообщение
('Y-m-d')
Не понятно , и зачем мне так делать ? когда он мне создаёт папки , а таким методом - что он сделает ? в бд можно и нормальную date записать NOW()
mialpet,
В бд я всё пишу , название , путь , файл(не сам файл) , кто залил и тд.
teremok_teremok,
Но сейчас пока кроме меня и знакомого не кто не заливает , можно логи не писать .
Ну если DDos || dos: , то тут от логов сильно не чего не будет , смысла н вижу , если только от новичка , а если профи , то чё писать , как врубят скоп зомби и пиши труба .
0
Сексуальный
 Аватар для mialpet
84 / 49 / 1
Регистрация: 02.04.2013
Сообщений: 443
12.04.2013, 00:52
Цитата Сообщение от lookmy Посмотреть сообщение
"Не предвиденные ошибки ."
Мне бы этого хватило чтобы не юзать этот скрипт

Задача рядовая и в инете должны быть тонны советов как ее решать (sql инъекции, проверка типа файла, спам - все то чего в вашем скрипте нету).

Хотя от инъекций в данном случае можно легко избавиться если будете задавать свое имя файлам, да и возможно они вообще тут не угроза не помню.
0
 Аватар для lookmy
60 / 55 / 20
Регистрация: 01.04.2013
Сообщений: 551
12.04.2013, 01:59  [ТС]
mialpet,
так в скрипте можно добавление rar , какая инъекция тут ?
0
Сексуальный
 Аватар для mialpet
84 / 49 / 1
Регистрация: 02.04.2013
Сообщений: 443
12.04.2013, 11:08
Цитата Сообщение от lookmy Посмотреть сообщение
так в скрипте можно добавление rar , какая инъекция тут ?
В названии, но вряд ли, сам zend вроде его изменяет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.04.2013, 11:08
Помогаю со студенческими работами здесь

Сервак выдает 500 ошибку при выполеннии ASP файла
Сервак выдает 500 ошибку при выполеннии ASP файла Заранее спасибо

Загрузка файла в ТекстБокс и открытие файла, зная его полный путь!
Всем привет! Имеется определенная проблема: ввожу в textbox полный путь к файлу, после сохраняю его с помощью кода: Dim FN as...

Загрузка файла через curl, а вместо файла страница с кроказабярами
Скачиваю файл через curl, а вместо него вылазает страница с крокозябрами HTTP/1.1 100 Continue HTTP/1.1 200 OK Server: nginx Date: Sat, 16...

Загрузка содержимого doc файла в RichTextBox по пути файла
Как вывести данный в RichTextBox с doc документа по его пути при нажатие кнопки?

Загрузка данных из файла с возможностью выбора файла
Всем доброго времени суток. У меня возник такой вопрос как организовать выбор файла с данными на языке СИ, пришла мысль в голову, что можно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru