Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
1 / 1 / 0
Регистрация: 08.09.2009
Сообщений: 202

Загрузка файла с формы

29.12.2016, 16:06. Показов 1079. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть форма
HTML5
1
<input type="file" name="file" id="file">
есть обработчик
PHP
1
2
3
$uploaddir = '/file/';
$uploadfile = $uploaddir . basename($_FILES['file']['name']); 
move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile);
что нужно сделать, чтобы файл загружался?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.12.2016, 16:06
Ответы с готовыми решениями:

Формы и загрузка файла
Помогите проблема в следующим. Нужно загрузить файл на сервер и записать комментарии в бд. Вобщем нужно проверить данные введённые...

Загрузка файла без формы?
Интересует вопрос!? Можно ли загрузить файл на сервер с помощью PHP? То есть кликнул на ссылку допустим (загрузить файл) появилось...

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

24
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
29.12.2016, 16:20
почитать документацию.
http://php.net/manual/ru/featu... method.php
0
1 / 1 / 0
Регистрация: 08.09.2009
Сообщений: 202
29.12.2016, 16:23  [ТС]
я с на основании этой документации и делал, но не получается
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
29.12.2016, 16:28
основание - это выдрать одну строчку с первого кода и три строчки со второго?
0
1 / 1 / 0
Регистрация: 08.09.2009
Сообщений: 202
29.12.2016, 16:33  [ТС]
Вы поможете или нет?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
29.12.2016, 17:21
по ссылке весь код предоставлен
0
1 / 1 / 0
Регистрация: 08.09.2009
Сообщений: 202
29.12.2016, 17:31  [ТС]
по ссылке я посмотрел, попробовал. не получилось. для чего пишете, если не собираетесь помогать?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
29.12.2016, 18:01
это свободный для общения форум. Собираюсь я помогать или нет - зависит от ваших ответов. И, судя по вашим ответам, желание помочь только снижается.
З.Ы.
Вот я вам скажу:
Не получилось уехать.
Что вы можете мне ответить? Почему вы не хотите мне помочь?
А на самом деле, помогать то не с чем. Непонятно, что значит "не получилось уехать" - нет транспорта, не заводится машина, еще что-то.. Примерно также выглядит ваша просьба о помощи - выложили строчку оттуда, строчку отсюда, и ждете, когда придет кто-то и даст вам полный код. Фраза "не получается" означает лишь то, что у вас что-то не получается (может, Ctrl+C не работает, я откуда знаю?)
0
1 / 1 / 0
Регистрация: 08.09.2009
Сообщений: 202
30.12.2016, 13:10  [ТС]
вот почему то $_FILES['file']['name'] пустым является, не понимаю почему
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
30.12.2016, 13:14
*режим Ванги on*
Потому что не указан атрибут enctype="multipart/form-data" ?
Потому что не выбран файл?
Потому что у инпута другое имя?
Потому что не нажали кнопку?
Потому что форма ссылается на другую страницу?

Могу продолжать дальше. Надо?

Добавлено через 1 минуту
или вы все-таки выложите свой код целиком, а не нарезками?
0
1 / 1 / 0
Регистрация: 08.09.2009
Сообщений: 202
30.12.2016, 13:20  [ТС]
HTML5
1
2
3
4
5
<form enctype="multipart/form-data" id="contact_01" method="post" action="">
                 <input type="text" name="name" id="name">
                                <input type="file" name="file" id="file">
                <p><button class="form__submit-btn btn" type="submit">Отправить заявку</button></p>
            </form>
при нажатии отправить заявку, письмо уходит, поле нэйм в письме
пробовал вставить в письмо переменную $_FILES['file']['name'], а она тупо пустая
0
1 / 1 / 0
Регистрация: 08.09.2009
Сообщений: 202
30.12.2016, 13:28  [ТС]
Цитата Сообщение от fanatikus Посмотреть сообщение
del
что? )
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
30.12.2016, 13:32
Цитата Сообщение от vi100k Посмотреть сообщение
что? )
ничего, просто удалил свой пост, так как он уже не актуален после того, как вы показали форму полностью. а обработчик, на этой же странице?
0
1 / 1 / 0
Регистрация: 08.09.2009
Сообщений: 202
30.12.2016, 13:33  [ТС]
да, на этой же
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
30.12.2016, 13:42
форма, рабочая. покажите обработчик
0
1 / 1 / 0
Регистрация: 08.09.2009
Сообщений: 202
30.12.2016, 13:49  [ТС]
На данный момент она выглядит так. и описанная переменная выше пустая
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?php
 
if ( ! empty($_POST['contact_01']))
{
    
 if ( !empty($_FILES['file']['name'] ) and $_FILES['file']['error'] == 0 ) {
    $filepath = $_FILES['file']['tmp_name'];
    $filename = $_FILES['file']['name'];
    $valid = array
    (
        'name'    => array('/(.+){2,}/', 'Введите свое имя'),
    );
  } else {
      $valid = array
    (
        'name'    => array('/(.+){2,}/', 'Введите свое имя'),
        'file' => array('/(.+){1,}/', 'Прикрепите файл'),
    );
  }
 
 
 
 
 
    
    
    $errors = array();
    
    
    
            $i=0;$s=0;
    foreach ($valid as $field => $data)
    {
        $regex = $data[0];
        $message = $data[1];
        
        $input[$s] = trim($_POST[$field]);
        
        if (empty($input) OR ! preg_match($regex, $input[$s]))
        {
            $errors += array($field => $message);
            $i++;
        } else {
            
            $s++;
            
            }
        
    }
        
        if ($i==0) {
            $fields .= "Имя: ".$input[0]." \r\n";
            $fields .= "Имя файла: ".$filename." \r\n";
                     
            mail("vi100k@mail.ru", "Заявка", $fields);
            }
        
 
    
    $result = empty($errors) ? 'success' : 'errors';
    
    
    
    echo json_encode(array
    (
        'result' => $result,
        'errors' => $errors,
        
    ));
    exit;
    
    
 
}
?>
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
30.12.2016, 13:53
Цитата Сообщение от vi100k Посмотреть сообщение
if ( ! empty($_POST['contact_01']))
а это что? в форме, нет такого поля
0
1 / 1 / 0
Регистрация: 08.09.2009
Сообщений: 202
30.12.2016, 13:54  [ТС]
<form enctype="multipart/form-data" id="contact_01" method="post" action="">
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
30.12.2016, 13:54
id на серверное стороне не доступно.
0
1 / 1 / 0
Регистрация: 08.09.2009
Сообщений: 202
30.12.2016, 13:57  [ТС]
тем не менее работает) вероятно помогает js
JavaScript
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
57
58
59
60
61
62
63
64
65
66
67
68
69
<script type="text/javascript">
        /**
         * Just a simple function to enable / disable our submit button
         * It lets the user know we're working on the request, and something is actually happening.
         */
        (function() {
            $.fn.toggleButton = function() {
                var $this = $(this),
                    disabled = $this.attr('disabled');
                    
                ( ! disabled) ? $this.html('Отправка...').attr('disabled', 'disabled')
                              : $this.html('Отправить заявку').attr('disabled', '');
                    
                return this;
            }
        })();
        
        // Shortcut to $(document).ready()
            
        
            $(function() {
            $('#contact_01').submit(function() {
                var self = $(this),          // Caches the $(this) object for speed improvements
                    post = self.serialize(); // Amazing function that gathers all the form fields data
                                             // and makes it usable for the PHP
                
                // Disable the submit button
                self.find('button').toggleButton();
                
                // Send our Ajax Request with the serialized form data
                $.post('index.php', post, function(data) {
                    // Since we returned a Json encoded string, we need to eval it to work correctly
                    var data = eval('(' + data + ')');
                    
                    // If everything validated and went ok
                    if (data.result == 'success') {
                        
                        // Fade out the form and add success message
                        $('#contact_01').fadeOut(function() {
                            
                            $(this).remove();
                            
                            $('<div class="message success"><h4>Спасибо</h4></div>')
                                .hide()
                                .appendTo($('#form_01'))
                                .fadeIn();
                        });
                    }
                    else {
                        // Hide any errors from previous submits
                        $('span.error').remove();
                        $(':input.error').removeClass('error');
                        
                        // Re-enable the submit button
                        $('#contact_01').find('button').toggleButton();
                        
                        // Loop through the errors, and add class and message to each field
                        $.each(data.errors, function(field, message) {
                            $('#' + field).addClass('error').after('<span class="error">' + message + '</span>');
                        });
                    }
                });
                
                // Don't let the form re-load the page as would normally happen
                return false;
            });
            
        });
    </script>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.12.2016, 13:57
Помогаю со студенческими работами здесь

Загрузка файла
Всем привет. Я в этом мало что соображаю, но мне удалось найти PHP код для загрузки файлов ко мне на сервер с сайта. Но появилась проблема...

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

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

Загрузка файла
Всем привет, что то туплю немного. Суть! Загрузить 3 файла на сервер. С массивом не разобрался, а вот что сейчас: &lt;form...

загрузка файла
привет всем.... написал постую форму для загрузки файлов (фотографий), при попытке загризки постоянно выдает сообщение что нет переменно...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru