|
автор: Alexxx` (07.06.2004 в 12:04) |
|
| впопрос к знатовам upload'a. при выборе файла для upload'a требуется, чтобы пользователь мог выбирать только файлы определенных типов (в моем случае csv). можно ли так сделать? | |
|
|
|
|
|
|
|
для: 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. Средства - любые. лишь бы работало. | |
|
|
|
|
|
|
|
для: 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мб, а это не очень хорошо:))) | |
|
|
|
|
|
|
|
для: Alexxx
(09.06.2004 в 11:24)
| | Но это опять же - пользователь сначала выберет файл, а только потом ты ему скажешь, что расширение не то. | |
|
|
|
|
|
|
|
для: 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 в 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 :)))
на этом для меня вопрос исчерпан! спасибо за помощь:)))) | |
|
|
|
|
|
|
|
для: Alexxx
(09.06.2004 в 15:45)
| | >to => cheops: спасибо за помощь! код работает, только файл
>.csv а не .cvs :)))
Я всегда их путаю и смотрю в "Сохранить как Excel" :))) | |
|
|
|