Программирование > JavaScript & JScript
Отправка опредиленных типов фалов
(1/1)
Abram:
Есть поле file и кнопка Submit(Ну и фраза получилась:) ) Как сделать чтобы отправлять только файлы gif, jpg и bmp?
tserbis:
Никак.
Но можно прочитать про аттрибут accept элемента form
accept = content-type-list [CI]
This attribute specifies a comma-separated list of content types that a server processing this form will handle correctly. User agents may use this information to filter out non-conforming files when prompting a user to select files to be sent to the server (cf. the INPUT element when type="file").
ondr:
К элементу формы типа file есть r/o доступ. Прежде чем "субмитить" форму, проверь все ли тебя устраивает в названии файла. Что же тут сложного?
Если важно не пропускать некие файлы, то на стороне сервера тоже неплохо проверить.
Nickii:
--- Цитировать ---ondr:
то на стороне сервера тоже неплохо проверить
--- Конец цитаты ---
Проверить в обязательном порядке, а то такого можно наворотить...
Covex:
насколько я не помню это уже обсуждалось...
и про корявые регулярные варажения писалось, и про то что на сервере оно стройнее будет ...
но все равно, вот тебе фрагмент моего мега кода проверяющего всякую неправльную фигню (надеюсь понятно что check должен быть к чему-то привязан, типа кнопки)
<script>
function check(){
var prname = /[\\d]/; //----хочу тока цифры
var df = /[\\D]/g; //--- помоему, хочу только нецифры
var fils = /\\htm$/; //-- хочу только хтмл документы
var filp = /\\jpg$/; //--- хочу только файлы на жпг оканчивающиеся
var errs = new Array(); //массив для сбора ошибок
if (teach.name.value=="" || prname.test(teach.name.value))
{
errs[0]="ФИО";
// проверил имя, если в нем цифры и пусто ето ошибка }
if (teach.grade.value=="")
{
errs[1]="СТЕПЕНЬ";
//если пусто ето ошибка }
if (teach.zvan.value=="")
{
errs[2]="ЗВАНИЕ";
//тоже самое }
if (teach.spec.value=="")
{
errs[3]="СПЕЦИАЛЬНОСТЬ";
//тоже самое }
if (teach.inst.value=="")
{
errs[4]="ЧТО ЗАКОНЧИЛ";
//alert(errs[4]);
}
if (df.test(teach.d1.value) || teach.d1.value >1974 || teach.d1.value<1930)
{
errs[5]="ГОД";
//проверил на цифренность и на значение
}
if (teach.legend.value!=""){
if (!fils.test(teach.legend.value))
{
errs[6]="Неправильтый тип файла в резюме, нужно htm";
//
}
}
if (teach.pic.value!="")
{
if(!filp.test(teach.pic.value))
{
errs[7]="Неправильтый тип файла в резюме, нужно jpg";
}
//alert(errs[7]);
}
if (errs.length!=0){
// если массив не пустой форма не отправится и скрипт покажет где вилы, если все "чисто" отправляем
errs=errs.join("\\n");
alert(errs);
}
else {
teach.submit();
}
}
</script>
но это не 100% защита от фигни. А от злого умысла вообще не защита.
Навигация
Перейти к полной версии