Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Upload файлов
 
 автор: Alexxx`   (07.06.2004 в 12:04)
 
 

впопрос к знатовам upload'a. при выборе файла для upload'a требуется, чтобы пользователь мог выбирать только файлы определенных типов (в моем случае csv). можно ли так сделать?

   
 
 автор: cheops   (07.06.2004 в 15:45)   письмо автору
 
   для: Alexxx`   (07.06.2004 в 12:04)
 

Ну, если средствами PHP делать, то можно так (файл index.php):

<form  enctype='multipart/form-data' action=index.php method=post>
<input size='61' class='input' type='file' name='cvs' >
<input class=button type=submit value=Отправить>
</form>
<?
if(strrchr($_FILES['cvs']['name']!='cvs')
{
  echo 
"Файл должен быть в cvs-формате";
  exit();
}
?>

Если не хочется гонять запросы между сервером и клиентом, проверку можно и на JavaScript написать...

   
 
 автор: Alexxx   (08.06.2004 в 14:29)
 
   для: cheops   (07.06.2004 в 15:45)
 

хотелось бы обойтись без проверки. Вернее чтобы сразу было доступно только выбор csv файлов. так доступно выбор 'All files' (внизу окна запроса), а нужно чтобы только csv. Средства - любые. лишь бы работало.

   
 
 автор: glsv (Дизайнер)   (08.06.2004 в 15:46)   письмо автору
 
   для: Alexxx   (08.06.2004 в 14:29)
 

Сделать так, чтобы в окне выбора файлов можно было выбрать только файл определенного типа нельзя ни средствами HTML, ни CSS, ни PHP.

   
 
 автор: Alexxx   (09.06.2004 в 11:24)
 
   для: Alexxx`   (07.06.2004 в 12:04)
 

Есть такой JAVA скрипт:


<script language=JavaScript>
    function checkFields ( ) {
         if (document.form.attach_file.value == "") {
              alert('Вы не выбрали файл!');
              return false;
          }
          return true;
          }
</script>


Я его использую для проверки на заполненость полей в форме.

Вопрос вот в чем: как на JAVA из полного пути файла извлечь расширение?
или есть другой способ проверки?

просто проверка на яве более удачна, чем на пхп, т.к. файл для аплоада может быть до 5мб, а это не очень хорошо:)))

   
 
 автор: glsv (Дизайнер)   (09.06.2004 в 12:48)   письмо автору
 
   для: Alexxx   (09.06.2004 в 11:24)
 

Но это опять же - пользователь сначала выберет файл, а только потом ты ему скажешь, что расширение не то.

   
 
 автор: cheops   (09.06.2004 в 14:58)   письмо автору
 
   для: Alexxx   (09.06.2004 в 11:24)
 

>Вопрос вот в чем: как на JAVA из полного пути файла извлечь
>расширение?
>или есть другой способ проверки?
Ну это-то как раз не сложно...
Например, можно просто проверить есть, что-то вроде *.cvs в строке или нет.
<script language=JavaScript> 
    function checkFields ( ) { 
         if (document.form.attach_file.value == "" || document.form.attach_file.value.lastIndexOf(".cvs")<1) { 
              alert('Вы не выбрали файл или его формат не соответствует *.cvs!'); 
              return false; 
          } 
          return true; 
          } 
</script>

Как бы браузер заставить в окне выбора файла предлагать выбирать файлы только с расширением *.cvs, наверняка это можно сделать, но у меня подозрение что это можно реализовать только для IE...

   
 
 автор: cheops   (09.06.2004 в 15:46)   письмо автору
 
   для: cheops   (09.06.2004 в 14:58)
 

Ну или посмотреть, что в последних 4 символах строки:
<script language=JavaScript> 
    function checkFields ( ) { 
         // возвращаем длину строки
         num = document.form.attach_file.value.length;
         if (document.form.attach_file.value == "" || document.form.attach_file.value.substring(num-4,num)!=".cvs") { 
              alert('Вы не выбрали файл или его формат не соответствует *.cvs!'); 
              return false; 
          } 
          return true; 
          } 
</script>

   
 
 автор: Alexxx   (09.06.2004 в 15:49)
 
   для: cheops   (09.06.2004 в 15:46)
 

to => cheops: предидущий код тоже неплохо работает. можно его даже разделить на отдельные проверки, и тогда еще лучше будет.

   
 
 автор: Alexxx   (09.06.2004 в 15:52)
 
   для: Alexxx   (09.06.2004 в 15:49)
 

тем более чем проще код, тем лучше, и соответственно меньше кода -- значит меньше байт для загрузки юзеру.

   
 
 автор: Alexxx   (09.06.2004 в 15:45)
 
   для: Alexxx`   (07.06.2004 в 12:04)
 

to => Дизайнер : ну если другого способа не известно, то и это сойдет, темболее это не требует почти никаких трат (в том числе и ресурсов), в отличие от PHP, где идет потеря времени (особенно если файл большой!)

to => cheops: спасибо за помощь! код работает, только файл .csv а не .cvs :)))

на этом для меня вопрос исчерпан! спасибо за помощь:))))

   
 
 автор: cheops   (09.06.2004 в 15:48)   письмо автору
 
   для: Alexxx   (09.06.2004 в 15:45)
 

>to => cheops: спасибо за помощь! код работает, только файл
>.csv а не .cvs :)))
Я всегда их путаю и смотрю в "Сохранить как Excel" :)))

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования