File Upload

  • Автор темы StarikStarik2705
  • Дата начала
S

StarikStarik2705

#1
жаль картинку для наглядности нельзя кинуть, в общем есть в Лотусе File Upload штука с помощью которой в браузере можно добавить файл. Опустим пока куда просто добавить. так вот в ФФ и ИЕ проблем нет, а вот Хром блеснул. Иконка "Выбрать файл" есть а вот строки инпута рядом нет, вместо него там написано "Файл не выбран". может кто сталкивался как это лечить?
 
S

StarikStarik2705

#3
Поле для вложения в web это <input type=file>, каждый браузер рисует его по своему.
тут мжно глянуть как сделать "дизайн" для поля такого типа
это понятно, у нас к сожелению используеться Dojo только, как можно Хрому сказать рисовать то что надо? но там не простой инпут, он часть обьекта FileUpload в Лотусе. На форме его добавляешь и в браузере видно "Выбрать файл"и инпут.
 

Kizarek86

Lotus team
20.07.2007
864
4
#4
Ну там описано как это сделать, ничего не машает написать тоже самое на голом JS или с Dojo.
Почитайте пост.

Общая канва там такая, если лень читать.
Стандартный инпут "скрывается" (не хайдом, а поверх его рисуется свой элемент).
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 601
277
#5
dojo у вас к счастью ;)...
а посмотреть что не так - открыть консоль разработчика
 
S

StarikStarik2705

#6
dojo у вас к счастью ;)...
а посмотреть что не так - открыть консоль разработчика
в общем то что я нарыл это просто глюк прорисовки инпута в Хроме. File upload в браузере это <input id="file0" class="Upload" type="file" name="%%File.c22575c3002fd6e5.316c34f805b88cfac22576800039b0c2.$Body.0.1416"> вот такая шняга когда) и проблема в хроме именно прорисовать ЭТО)
 

Kizarek86

Lotus team
20.07.2007
864
4
#7
Еще раз, это НЕ ПРОБЛЕМА!
Тег <input type="file"> является стандартным элементом HTML, и браузер прорисовывает его по своему.
 

AndreKv

New member
13.11.2012
4
0
#8
жаль картинку для наглядности нельзя кинуть, в общем есть в Лотусе File Upload штука с помощью которой в браузере можно добавить файл. Опустим пока куда просто добавить. так вот в ФФ и ИЕ проблем нет, а вот Хром блеснул. Иконка "Выбрать файл" есть а вот строки инпута рядом нет, вместо него там написано "Файл не выбран". может кто сталкивался как это лечить?
Так а собственно - что лечить?!? )) Тыкаешь "Выбрать файл" - и выбираешь! ) Я на это - вообще не обращал внимания. )
Ну, я заметил, что оно по разному в разных браузерах отрисовывает File Upload, но не могу сказать, что это - бага. )
На то она и кнопка, чтобы выбирать файл через окошко. )
 
S

StarikStarik2705

#9
Так а собственно - что лечить?!? )) Тыкаешь "Выбрать файл" - и выбираешь! ) Я на это - вообще не обращал внимания. )
Ну, я заметил, что оно по разному в разных браузерах отрисовывает File Upload, но не могу сказать, что это - бага. )
На то она и кнопка, чтобы выбирать файл через окошко. )
Лечить надо отображение инпута в Хроме) короче ныряю в ява скрипт)
 

VladSh

начинающий
Lotus team
11.12.2009
1 277
6
#13
Может, я чё-то не то ляпну... но не думал, что с File Upload могут быть проблемы. Сейчас любой браузер поддерживает HTML5; ребята php'шники рассказывали, что используют его, и никаких проблем под любым браузером.
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 601
277
#14
вы знаете справился, вот пример стиля:
border: 1px solid #C0C0C0;height: 23px;width: 380px;border: 1px solid #C0C0C0; size:30;font-size: 12px; padding: 0px 3px 0px; line-height: 16px
но кто то знает как убрать слово "Файл не выбран"?
шрифт сделать фоновым цветом, а на событие - делать видимым
 
S

StarikStarik2705

#15
Может, я чё-то не то ляпну... но не думал, что с File Upload могут быть проблемы. Сейчас любой браузер поддерживает HTML5; ребята php'шники рассказывали, что используют его, и никаких проблем под любым браузером.
спасибо всё решил)
в общем сделал так, может примитивно но зато работает:
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">css</div></div><div class="sp-body"><div class="sp-content"><!--shcode--><pre><code class='css'><style>
.blockInput {
position: absolute;
margin-top:-26px;
margin-left:+102px;
height: 23px;
width: 200px;
border: 0px solid #C0C0C0;
size:30;
font-size: 12px;
padding: 0px 3px 0px;
line-height: 16px;
}
</style>[/CODE]этот инпут вставить перед тем который вам не нравиться <input type="text" class = "blockInput" id = "blockInput" readonly>
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">script</div></div><div class="sp-body"><div class="sp-content"><!--shcode--><pre><code class='html'><script>
var ua = navigator.userAgent.toLowerCase();
if (window.chrome || ua.indexOf("safari") != -1){
document.getElementById("blockInput").style.display = "block";
}else{
document.getElementById("blockInput").style.display = "none";
}
</script>[/CODE]и в результате перед "Выбрать файл" в Сафари и Хроме не будет "Файл не найден"

Благодарю вас за правильную наводку)
 

VladSh

начинающий
Lotus team
11.12.2009
1 277
6
#16
JavaScript:
if (window.chrome || ua.indexOf("safari") != -1)
Читал, что теперь проверку "что за браузер" делать некорректно, и сейчас это является чуть ли не дурным тоном. В HTML5 добавили методы для определения "а поддерживается ли этот метод и т.п., браузером?", т.е. сейчас проверяется просто наличие реализованного функционала, - код получается универсальным.
О5 же, наименования методов не называю, т.к. не помню, - сейчас я как та сорока: "Слышал звон, да не вырубишь топором"; так что только идея. Если раскопаете, поделитесь плз.
 

hosm

* so what *
18.05.2009
2 442
6
#17
VladSh переместила в программирование. там не про XPages - простая олдскульная веб-форма для добавления вложений.
 

VladSh

начинающий
Lotus team
11.12.2009
1 277
6
#18
OKEN
Я думал, что это же м.б. использовано и в XPages. Ок.