2013-09-12 4 views
0

Есть ли способ/функция/скрипт, который мы можем использовать для проверки сведений о файле (расширение &) до того, как пользователь действительно отправит форму. Я не знаком с jquery или javascript, поэтому PLS помогите мне в этом подробно, если это решение.Проверка сведений о файле перед отправкой

Я ожидаю, что когда пользователь выберет файл, используя команду onchange, файл будет проверен и возвращен значок «галочка», чтобы показать, что он принят и возвращает erorr msg, если размер больше или используется другое расширение.

Вот форма ..

<table width="809" cellpadding="2" cellspacing="2"> 
    <tr> 
    <td width="252"><label for="file">Acceptance Letter from Publisher:</label></td> 
    <td width="541"><input type="file" name="acceptletter" id="file" onchange="checkFile(this.value)"></td> 
    </tr> 
    <tr> 
    <td width="252"><label for="file">Turnitin Similarity Report :</label></td> 
    <td width="541"><input type="file" name="turnitin" id="file" onchange="checkFile(this.value)></td> 
    </tr> 
    <tr> 
    <td width="252"><label for="file">Paper Indexing :</label></td> 
    <td width="541"><input type="file" name="paperindex" id="file onchange="checkFile(this.value)"></td> 
    </tr> 
    <tr> 
    <td width="252"><label for="file">Publisher's Reviewers Report :</label></td> 
    <td width="541"><input type="file" name="reviwerReport" id="file"onchange="checkFile(this.value)"></td> 
    </tr></table>` 
+0

https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement –

+0

Я проверил связанную вами ссылку. Но он не дает пример того, как я могу его применить. Пожалуйста, помогите мне @SamuelLiew – nanie

ответ

0

Первое, что вы дали Id файл для всех 3 элементов. Он должен быть уникальным. Вы можете получить размер файла следующим образом

var filesize = $("#file1").files[0]·size; //gives Size in bytes. 
var filename = $("#file1").files[0]·name; //say file name "abcd.xls" 

var lastIndex = filename.lastIndexOf("."); //index of . that is 4 
var extension1 = filename.substring(lastIndex); //will give ".xls" 
var extension2 = filename.substring(lastIndex+1); //will give "xls" 

От имени файла вы можете получить расширение по подстроке последнего индекса.

+0

хорошо, у меня есть изменения в файле, файле1 и т. Д. имя файла var должно получить расширение? – nanie

+0

обновил мой код, чтобы получить расширение от простого загрузчика файлов. – sudhAnsu63

+0

благодарит за вашу помощь. Задача решена. Это полезно. – nanie

0

Хорошо, первый для «расширения» все, что вам нужно сделать, это взять имя файла/путь, и сделать разделение на «» голец. То есть

var sFileName = document.getElementById('file').value; 
var sFileExtension = sFileName.split('.')[sFileName.split('.').length - 1]; 
alert(sFileExtension); 

Чтобы найти размер файла ...

var iFileSize = document.getElementById('file').files[0].size; 
alert(iFileSize); 

Наконец, вы не можете иметь несколько элементов DOM с тем же атрибутом 'ид'. Вам нужно изменить id = «файл» для всех, кроме одного, для чего-то другого, чем «файл». Кроме того, не очень хорошая практика кодирования использовать ключевое слово как уникальное имя. Измените идентификатор всех из них на нечто уникальное, а не на ключевое слово типа «файл».

+0

, поэтому вместо использования id = 'file' я могу просто поместить его вот так? name = "acceptletter" id = "acceptletter" – nanie

+0

где можно указать, какое расширение принято? – nanie

+0

Да, id = "acceptletter" name = "acceptletter" в порядке. –

0

Возвращает свойство Имя файла:

fileName = fileuploadObject.name ; 

, чтобы получить путь или имя:

fileuploadObject.value; //it's read only 

, чтобы получить имя файла и расширение:

var extension = fileName.split('.').pop(); 
var name = fileName.split('.')[0]; 

получить Размер файла:

var fileSize = fileuploadObject.size); // in bytes 
+0

Большое вам спасибо. – nanie

Смежные вопросы