Проверьте расширение файла при выборе файла для 'file_field' и покажите сообщения об ошибках (если они есть), используя Ruby on Rails - PullRequest
1 голос
/ 11 февраля 2011

Я использую Ruby on Rails 3 и Prototype, и я хотел бы проверить расширение файла при выборе файла для file_field, чтобы я мог показать ошибку, если она не является одной из разрешенных (в моем случаетолько .doc и .pdf являются допустимыми расширениями.)

В настоящее время в моем файле просмотра я наблюдаю file_field следующим образом:

page.event.observe('file_field_id', 'change') do |element|
  # Here I would like to put some code in order to check the file extension
  # If the file extension isn't '.doc' or '.pdf' I would like to set and show an error text in the 'error_id'
  # I know using 'element[:error_id].show' I can show the error, but...
  #   1. how to set the error value?
  #   2. how to check the file extension?
end

Теперь мне нужно проверитьесли после выбора файла строка в file_field имеет расширение .doc или .pdf, а если нет, задайте значение для error_id и покажите его.

КакЯ могу это сделать?


ОБНОВЛЕНИЕ : мне нужно это с использованием Protoype framework.Возможно ли это?

1 Ответ

0 голосов
/ 11 февраля 2011

В JS с помощью регулярного выражения вы можете получить расширение файла.

var extens=(/[.]/.exec(myfile)) ? /[^.]+$/.exec(myfile) : undefined;

Здесь myfile - это адрес или путь к файлу.Это просто берет часть строки после ".",Затем вы можете сделать несколько контрольных проверок с помощью if.Что-то вроде:

if(extens=="doc" || extens=="pdf")
{
       //your method goes here
}
else
{
       error_id= ........
}
...