Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
Скрытый в тени
24 / 16 / 6
Регистрация: 07.01.2016
Сообщений: 71

Имя файла и его размер в теге label

11.04.2018, 13:21. Показов 1617. Ответов 3

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Есть свой компонент input type file, такого вида:
HTML5
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
<div class="file-upload">
                        <label class="label_cl">
                            <input id="uploaded-file1" type="file" name="file" />
                            <span class = "span_cl" id = "upl_span">Выберите файл печати</span>
                        </label>
                    </div>
 
 
<style>
.file-upload input[type="file"]{ 
            display: none;
        } 
        .file-form-wrap{
            width:260px; 
            margin:auto;
        } 
        .file-upload {
            position: relative; 
            overflow: hidden; 
            width: 200px;
            height: 25px;
            line-height: 25px;
            background: white;
            border: 1px solid black;
            border-radius: 4px; 
            font-weight: bold;
            text-align: center;
            font-size: 12px;
            display: inline-block;
        } 
       
        /* Растягиваем label на всю область блока .file-upload */ 
        .file-upload label { 
            position: absolute; 
            top: 0; 
            left: 0; 
            width: 100%; 
            height: 100%; 
            cursor: pointer; 
        } 
        /* стиль текста на кнопке*/ 
        .file-upload span { 
            font-weight:bold;
        }
 
</style>
Этот инпут динамически вставляется в ячейки html таблицы циклом.

Как сделать так, чтобы текст label при выборе файла, менялся на ИмяФайла + РазмерФайла?

Пока есть такие наработки:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    $("table").on("change", ".upl_but", function () {
    
    try {               
            var file = $("#uploaded-file1").prop('files')[0];
            if (file) {                     
                var fileSize = 0;                   
                
                if (file.size > 1024 * 1024) {
                    fileSize = (Math.round(file.size * 100 / (1024 * 1024)) / 100).toString() + 'MB';
                }
                else {
                    fileSize = (Math.round(file.size * 100 / 1024) / 100).toString() + 'KB';
                }
                var filename = file.name + " (" + fileSize + ")";
            }
        }catch(e) {
            var file = document.getElementById('uploaded-file1').value;
            file = file.replace(/\\/g, "/").split('/').pop();
            document.getElementById('file-name1').innerHTML = 'Имя: ' + file;
        }
 
        $(this).find("span").text(filename);
    });
Пишет имя и размер только к 1 элементу таблицы. К остальным не применяется (загрузка файлов на сервер при этом работает со всех кнопок в таблице). Направьте на путь истинный )
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.04.2018, 13:21
Ответы с готовыми решениями:

Вытащить имя сотрудника в Label по его ID
Привет всем вообщем делаю я свою курсовую работу Простую часть почти закончила но не могу не чего придумать с мини авторизацией Все...

Как узнать полное имя файла зная его краткое имя?
например при запуске программы достаточно написать &quot;Excel&quot; или &quot;Calc&quot; при этом система уже в курсе где этот файл лежит. как программно...

ListView, как отобразить имя файла и размер файла?
Подскажите, как в ListView отобразить имя файла и размер файла. используя DirectoryListBox1 ????????? Т.е. поле - имя файла и поле размер...

3
Скрытый в тени
24 / 16 / 6
Регистрация: 07.01.2016
Сообщений: 71
12.04.2018, 14:24  [ТС]
Что, ни у кого идей никаких нет? Сдается мне что тут все дело в том, что id то у этих itput один. Вроде можно написать:
HTML5
1
2
3
4
5
6
<div class="file-upload">
   <label class="label_cl">
      <input id="uploaded-file1" type="file" name="file[]" />
      <span class = "span_cl" id = "upl_span">Выберите файл печати</span>
   </label>
</div>
Т.е. добавить к имени [], тогда они будут добавляться как массив. Но как к ним потом обратиться тогда?
0
Эксперт JS
2037 / 1096 / 409
Регистрация: 29.04.2016
Сообщений: 2,625
13.04.2018, 02:27
Лучший ответ Сообщение было отмечено RussianNinja как решение

Решение

Цитата Сообщение от RussianNinja Посмотреть сообщение
Что, ни у кого идей никаких нет?
Может так:
Песочница

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
<style>
html, body{margin: 0px;background-color: #d8d8d8;width:  100%;}
 
.file-upload input[type="file"]{ 
    display: none;
} 
.file-form-wrap{
    width:260px; 
    margin:auto;
} 
.file-upload {
    position: relative; 
    overflow: hidden; 
    width: 200px;
    height: 25px;
    line-height: 25px;
    background: white;
    border: 1px solid black;
    border-radius: 4px; 
    font-weight: bold;
    text-align: center;
    font-size: 12px;
    display: inline-block;
    margin: 0px 0px 0px 20px;
} 
 
/* Растягиваем label на всю область блока .file-upload */ 
.file-upload label { 
    position: absolute; 
    top: 0; 
    left: 0; 
    width: 100%; 
    height: 100%; 
    cursor: pointer; 
} 
/* стиль текста на кнопке*/ 
.file-upload span { 
    font-weight:bold;
}
</style>
 
<div class="file-upload">
    <label class="label_cl">
        <input class="uploaded-file" type="file" name="file" />
        <span class = "span_cl">Выберите файл печати</span>
    </label>
</div>
<br>
<div class="file-upload">
    <label class="label_cl">
        <input class="uploaded-file" type="file" name="file" />
        <span class = "span_cl">Выберите файл печати</span>
    </label>
</div>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
uploadFile();
function uploadFile(){
    var loadFile = document.getElementsByClassName('uploaded-file'),fileName,
    spanCl = document.getElementsByClassName('span_cl'), fileSize=0;
    for(i=0; i<loadFile.length; i++){
        loadFile[i].num = i;
        loadFile[i].addEventListener('change',function(){
            fileName = this.value.split('\\');
            fileName = fileName[fileName.length-1];
            fileSize = this.files[0].size;
            (fileSize>1048576)?fileSize=( Math.round(fileSize*100/1048576) /100).toString()+'MB':fileSize=( Math.round(fileSize*100/1024) /100).toString()+'KB';
            spanCl[this.num].innerHTML = fileName+' ('+fileSize+')';
        },false);
    }
}
1
Скрытый в тени
24 / 16 / 6
Регистрация: 07.01.2016
Сообщений: 71
16.04.2018, 12:07  [ТС]
Цитата Сообщение от zlojnaxa Посмотреть сообщение
Может так:
Песочница

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
<style>
html, body{margin: 0px;background-color: #d8d8d8;width:  100%;}
 
.file-upload input[type="file"]{ 
    display: none;
} 
.file-form-wrap{
    width:260px; 
    margin:auto;
} 
.file-upload {
    position: relative; 
    overflow: hidden; 
    width: 200px;
    height: 25px;
    line-height: 25px;
    background: white;
    border: 1px solid black;
    border-radius: 4px; 
    font-weight: bold;
    text-align: center;
    font-size: 12px;
    display: inline-block;
    margin: 0px 0px 0px 20px;
} 
 
/* Растягиваем label на всю область блока .file-upload */ 
.file-upload label { 
    position: absolute; 
    top: 0; 
    left: 0; 
    width: 100%; 
    height: 100%; 
    cursor: pointer; 
} 
/* стиль текста на кнопке*/ 
.file-upload span { 
    font-weight:bold;
}
</style>
 
<div class="file-upload">
    <label class="label_cl">
        <input class="uploaded-file" type="file" name="file" />
        <span class = "span_cl">Выберите файл печати</span>
    </label>
</div>
<br>
<div class="file-upload">
    <label class="label_cl">
        <input class="uploaded-file" type="file" name="file" />
        <span class = "span_cl">Выберите файл печати</span>
    </label>
</div>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
uploadFile();
function uploadFile(){
    var loadFile = document.getElementsByClassName('uploaded-file'),fileName,
    spanCl = document.getElementsByClassName('span_cl'), fileSize=0;
    for(i=0; i<loadFile.length; i++){
        loadFile[i].num = i;
        loadFile[i].addEventListener('change',function(){
            fileName = this.value.split('\\');
            fileName = fileName[fileName.length-1];
            fileSize = this.files[0].size;
            (fileSize>1048576)?fileSize=( Math.round(fileSize*100/1048576) /100).toString()+'MB':fileSize=( Math.round(fileSize*100/1024) /100).toString()+'KB';
            spanCl[this.num].innerHTML = fileName+' ('+fileSize+')';
        },false);
    }
}

Спасибо большое! Работает так, как нужно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.04.2018, 12:07
Помогаю со студенческими работами здесь

Отобразить в label имя открытого файла
Ребята.подскажите как реализовать: нужно отобразить в label имя открытого через опен диалог файла например ...

Файлы. Удвоить его размер, записав в конце файла все его исходные элементы
Дан файл целых чисел. Удвоить его размер, записав в конце файла все его исходные элементы ( в том же порядке). С этой задачей то же самое

Получить имя файла и размер файлов в архиве из строки
Доброго времени суток помогите пожалуйста разобраться. Мне необходимо с помощью 7zip работать с архивами, а именно получить имя файла и...

Удвоить размер файла, записав в конец файла все его исходные элементы
Дан файл целых чисел. Удвоить его размер, записав в конец файла все его исходные элементы (в том же порядке). Помогите пожалуйста!!!!

Удвоить размер файла, записав в конец файла все его исходные элементы
дан файл целых чисел. удвоить его размер, записав в конец файла все его исходные элементы.(в обратном порядке).


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
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 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru