С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 29.08.2013
Сообщений: 27

Добавить форматы загружаемых файлов в форму

11.02.2015, 07:50. Показов 1602. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Возможно глупый вопрос, но в PHP я ноль, только только начал изучать в связи с заданием. Так вот есть сайт на typo3, на странице есть форма жалоб с возможностью прикрепления файла, но только изображения. Теперь нужно добавить возможность прикреплять аудио, видео и pdf файлы. Вод кусок кода, отвечающий за проверку и загрузку изображения:
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
if(!$this->error)
        {
            $a = FALSE;
            if(!empty($_FILES['img']['tmp_name']))
                {
                    $a = TRUE;
                }
                                    
            if($a)
                {
                    $extension = substr($_FILES['img']['name'], strrpos($_FILES['img']['name'], '.')); //получаем расширение
                    $arrExtensions = array('.jpg', '.jpeg', '.gif', '.png', '.bmp'); //массив с допустимыми расширениями
 
                    
                    if(!$this->validImg($_FILES['img']))
                        {
                            $mserror['img'][] = 'ошибка целостности файла';    
                        }
                
                    $mime = getimagesize($_FILES['img']['tmp_name']);
                    
 
                    if(!in_array($extension, $arrExtensions)) //если расширение не указано, или указано не верно
                    {           
                        if ($mime['mime'] == 'image/jpeg'){
                             $extension = '.jpg';
                        }
                        elseif ($mime['mime'] == 'image/png'){
                             $extension = '.png';
                        }
                        elseif ($mime['mime'] == 'image/gif'){
                             $extension = '.gif';
                        }
                        else{
                             $mserror['img'][] = 'ошибка файла';
                        }
                    }
    $RenameFileImg = md5('no hack this'.md5(time().'name for img'.time().rand()).time()).'.jpg';
    //print_r(__FILE__); die;
                    if(!copy($_FILES['img']['tmp_name'],$dir.$RenameFileImg))
                        {
                            $mserror['img'][] = 'ошибка при копированиии файла'; 
                        }
                }
            else
                {
                        $mserror['img'][] = 'нет файла';
 
                }
            
//            if(!$this->validEmail($post['email']))
//               {
//                   $mserror['email'][] = 'ошибка email';
//                }
 
        }
Скажите пожалуйста, что и где нужно добавить, чтобы была возможность прикреплять файлы другого типа?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.02.2015, 07:50
Ответы с готовыми решениями:

Имена загружаемых файлов
Возникла проблема с именем загруженного файла. А именно в том, что если загружать файлы в именах, которых присутствует кириллица, то там...

Добавить вложение файлов в форму обратной связи
Здравтвуйте, подскажите как в данный код добавить вложение файлов :3 Template Name: обратная связь */ ?> <?php...

Сосчитать количеств загружаемых файлов
друзья расскажите пожалуйста как посчитать колличество загруженных файлов через форму <input type="file" multiple...

6
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
11.02.2015, 13:19
Лучший ответ Сообщение было отмечено csse106 как решение

Решение

Цитата Сообщение от csse106 Посмотреть сообщение
$arrExtensions = array('.jpg', '.jpeg', '.gif', '.png', '.bmp'); //массив с допустимыми расширениями
вы читать комментарии пробовали
0
0 / 0 / 0
Регистрация: 29.08.2013
Сообщений: 27
11.02.2015, 13:22  [ТС]
Спасибо за ответ. Да читал, конечно, и добавлял сюда другие расширения, но дело в том, что если вы просмотрите следующие строчки кода, то увидите, что там идет проверка именно файлов КАРТИНОК. Так что банальное дописывание не поможет.
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
11.02.2015, 13:29
Цитата Сообщение от csse106 Посмотреть сообщение
elseif ($mime['mime'] == 'image/gif'){ $extension = '.gif'; }
в чем проблема, добавьте свой eleif(с нужным расширением)
0
0 / 0 / 0
Регистрация: 29.08.2013
Сообщений: 27
11.02.2015, 13:32  [ТС]
В том и проблема, что я новичок...разве что форумом ошибся. Для Вас, это может быть и семечки, а для меня это "китайский язык", я без подробностей не сразу догоняю, все же, спасибо за скорый ответ. Буду пробовать
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
11.02.2015, 13:37
так, понятно?
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
      if(!in_array($extension, $arrExtensions)) //если расширение не указано, или указано не верно
        {           
            if ($mime['mime'] == 'image/jpeg'){
                 $extension = '.jpg';
            }
            elseif ($mime['mime'] == 'image/png'){
                 $extension = '.png';
            }
            elseif ($mime['mime'] == 'image/gif'){
                 $extension = '.gif';
            }
             elseif ($mime['mime'] == 'image/ваше расширение'){
                 $extension = 'ваше расширение';
            }
            else{
                 $mserror['img'][] = 'ошибка файла';
            }
        }
0
0 / 0 / 0
Регистрация: 29.08.2013
Сообщений: 27
11.02.2015, 13:40  [ТС]
это-то я понял. просто посмотрите на 38 строчку. мне получается надо будет заменить jpg на $extension? Я правильно понимаю?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.02.2015, 13:40
Помогаю со студенческими работами здесь

Транслитерация загружаемых файлов на PHP
Здравствуйте, я криворукий (ну т.е. начинающий) PHP-программист, и есть у меня такая проблема: у меня есть скрипт загрузки файлов в...

Проверка типов загружаемых файлов.
В общем нужно загрузить 3-4 файла быть. Могут быть (проверка на js есть), далее нужно проверять на стороне сервера. Проверок на картинки...

Изменить формат загружаемых файлов
Мне нужен простой загрузчик муз. файлов( mp3, wav). Нашел урок: http://www.codeharmony.ru/materials/143 Хотел сделать по нему. Но, он для...

Ограничение на количество загружаемых файлов в php.ini и ошибка типа Warning
Есть форма, работающая через jQuery.ajax. Три поля - название (input text), описание (textarea) и загрузка файлов (input file multiple)....

Форматы файлов и безопасность
Здравствуйте. Хочу разрешить пользователям прикреплять свои файлы. Какие форматы можно разрешить, а какие нет? спасибо.


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru